1.创建项目
rails new blog
2.创建数据库
cd blog
rails g scaffold Post title:string user:string content:text
rails g scaffold Comment body:text user:string post:references
rake db:migrate
3.指定主页
config/routes.rb中增加
root
:to => 'posts#index'
删除public中的index.html文件
4.将post和comment两张表关联起来
app/model/post.rb中
has_many :comments, :dependent => :destroy
app/model/comment.rb中
belongs_to :post
config/routes.rb将
resources :comments
resources :posts
修改为:
resources :posts do
resources :comments, :only => [:create, :index]
end
resources :comments
这样修改后可以在post页面中追加若干个comments
5.增加限制
model/post.rb中
validates_uniqueness_of :title #不允许重复
validates_presence_of :title, :content, :user #不允许为空
Model/comment.rb中
validates_presence_of :post, :body, :user
6.增加comment的new和edit页面中的post的下拉选择框
将app/views/comments/_form.html.erb
<div class="field">
<%= f.label :post %><br />
<%= f.text_field :post %>
</div>
改为
<div class="field">
<%= f.label :post %><br />
<%= f.collection_select :post_id, Post.all, :id, :title %>
</div>
7.给文章增加评论功能
App/posts/show.html.erb中追加
<% unless @post.comments.empty? %>
<div id="comments">
<h3>Comments (<%= @post.comments.length %>)</h3>
<% @post.comments.each do |comment| %>
<%= comment.user %> say:
<%= simple_format(comment.body) %>
<% end %>
</div>
<% end %>
<%= form_for [@post, Comment.new] do |f| %>
<div id="comments">
<h3>New Comment</h3>
<p>
<%= f.label :user %><br />
<%= f.text_field :user %>
</p>
<p>
<%= f.label :body %><br />
<%= f.text_area :body, :rows => 10 %>
</p>
<%= f.hidden_field :post_id, :value => @post.id %>
<p><%= f.submit "Add Comment" %></p>
</div>
<% end %>
8.修改comment页面中post的显示
将index和show页面中的comment.post改为comment.post.title
9.修改追加comment后的跳转
Controllers/comments_controller.rb
将create函数中的创建成功后的跳转改到所在的post的show页面中
def create
@comment = Comment.new(params[:comment])
respond_to do |format|
if @comment.save
format.html { redirect_to @comment.post, notice: 'Comment was successfully created.' }
format.json { render json: @comment, status: :created, location: @comment }
else
format.html { render action: "new" }
format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
end
10.给文章的题目增加链接
例1
将<td><%=
post.title %></td>改为
<td><%=
link_to post.title, post %></td>
例2
将<td><%=
comment.post.title %></td>改为
<td><%=
link_to comment.post.title, comment.post %></td>
11.增加创建和修改post的简单权限(在创建、修改或删除前需要先登录)
Controllers/posts_controller.rb
before_filter :authenticate, :except => [:index, :show]
private
def authenticate
authenticate_or_request_with_http_basic do |name, password|
name == "admin" && password == "password"
end
end
分享到:
相关推荐
Hexo是一个基于Node.js的开源博客框架,它以其快速、简洁和强大的特性赢得了广大开发者和博主的喜爱。在JavaScript开发领域,Hexo作为一个内容管理系统(CMS),使得创建、管理和发布个人或团队博客变得极其便捷。 ...
在“blog框架,一个简单的BLOG框架”中,我们可以推测这是一个为初学者设计的轻量级博客系统开发框架。它的目标是通过简洁的代码和易于理解的结构,让新手能够快速上手。以下是一些可能包含在这个框架中的关键知识点...
3. **Hexo**: 也是一个静态博客框架,基于Node.js,快速、简洁且易于部署。 4. **Django Blog**: Django框架下的博客应用,提供完整的后台管理界面和多种功能。 5. **Flask-Blogging**: Flask微型框架上的博客扩展,...
这个压缩包"JavaScript_一个快速、简单、强大的博客框架,由Nodejs提供支持.zip"很可能包含了一个基于JavaScript和Node.js的博客框架,如Hexo。Hexo是一款快速、简洁且高效的静态博客框架,它使用Markdown(或其他...
这个"blog博客框架"是一个使用SSM框架搭建的简单博客系统,旨在帮助开发者快速构建自己的博客平台。它摒弃了传统的XML配置方式,采用注解驱动的方式进行开发,使得代码更加简洁易懂。 1. **Spring框架**:Spring是...
Hexo是一个基于Node.js的开源博客框架,以其快速、简洁且强大的特性深受开发者喜爱。它允许用户通过简单的配置和命令行工具快速搭建个人博客系统。Hexo的核心优势在于其高效的工作流程,它能够自动化处理文章的...
【标题】"一个简单博客"指的是aspBlog,这是一个基于ASP技术构建的简易博客系统,旨在为用户提供方便快捷的在线日志发布和管理平台。在Web开发领域,ASP(Active Server Pages)是微软推出的一种服务器端脚本环境,...
标题 "10分钟创建一个Ruby博客" 涉及到的是使用Ruby编程语言快速搭建一个博客系统的教程。在这个过程中,我们将探讨Ruby的基础知识,以及如何利用特定的工具和框架来构建这样的系统。Ruby是一种面向对象的、动态的、...
本文以创建一个简单博客应用为例,展示了Django的基本用法。首先,通过命令行创建项目和应用,接着定义Post模型以管理博客文章的标题、内容及创建时间。随后,编写视图函数以获取并渲染所有文章,配置URL以处理请求...
总之,这个20分钟编写的博客框架展示了CodeIgniter的强大之处,即使在短时间内也能快速搭建出一个功能完备的应用。对于初学者来说,这是一次很好的实践,可以帮助理解MVC架构和PHP框架的运作方式。而对于有经验的...
基于Yii框架开发的博客,如"YiiBlog",充分利用了Yii的特性来构建一个功能完备、性能优秀的博客系统。下面我们将深入探讨Yii框架及其在开发博客系统中的应用。 Yii框架的核心特点包括: 1. 高性能:Yii采用缓存...
在本篇【Python一日一练102----创建简易博客(下)】的教程中,我们将深入探讨如何使用Python编程语言构建一个简单的博客系统。这个教程可能是基于Django框架进行的,因为Django是Python中广泛用于Web开发的高级框架...
4. **动手实践**:创建一个简单的项目,如博客系统,来应用所学知识。 总结来说,"一个简单的PHP开发框架"意味着这个框架旨在降低PHP开发的门槛,提供基本的MVC结构和必备功能,让开发者能够快速上手,搭建自己的...
本项目基于Java的轻量级Web开发框架——JFinal,构建了一个高效、简洁且易于维护的个人博客系统。下面将详细介绍这个系统的核心技术和实现细节。 **JFinal框架介绍** JFinal是基于Java的MVC(Model-View-...
在这个"yii_blog 博客系统"中,你将学习到如何使用Yii框架来搭建一个简单的博客平台。 首先,Yii框架的核心特性包括MVC(Model-View-Controller)设计模式、主动记录(ActiveRecord)模式、缓存管理、身份验证和...
标题中的“利用Elements css framework写的一个简单页面框架”指的是使用一个名为Elements的CSS框架来构建一个基础的网页布局。Elements框架通常提供预定义的样式、组件和布局工具,以简化前端开发过程,使得开发者...
Tkinter是Python的标准GUI库,易于学习,适合快速创建简单的窗口应用。 根据压缩包子文件的文件名称列表“个人简易博客系统”,我们可以推测这个压缩包可能包含以下内容: 1. ThinkPHP或Flask的源代码文件,如`....