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微型框架上的博客扩展,...
内容概要:本文详细介绍了如何利用 Django 框架创建一个简易的博客应用程序,涵盖了从环境搭建到最后运行的具体步骤,包括项目的初始化、新建应用、配置项目、定义模型、建立数据库表单、编写视图与URL映射,以及...
这个压缩包"JavaScript_一个快速、简单、强大的博客框架,由Nodejs提供支持.zip"很可能包含了一个基于JavaScript和Node.js的博客框架,如Hexo。Hexo是一款快速、简洁且高效的静态博客框架,它使用Markdown(或其他...
本项目旨在设计并实现一个基于Django框架的小型博客网站。随着互联网技术的迅速发展,尤其是移动互联网的普及,个人博客成为了许多人分享知识、交流经验的重要平台。本项目通过运用Python语言和Django框架,构建了一...
这个"blog博客框架"是一个使用SSM框架搭建的简单博客系统,旨在帮助开发者快速构建自己的博客平台。它摒弃了传统的XML配置方式,采用注解驱动的方式进行开发,使得代码更加简洁易懂。 1. **Spring框架**:Spring是...
Hexo是一个基于Node.js的开源博客框架,以其快速、简洁且强大的特性深受开发者喜爱。它允许用户通过简单的配置和命令行工具快速搭建个人博客系统。Hexo的核心优势在于其高效的工作流程,它能够自动化处理文章的...
【标题】"一个简单博客"指的是aspBlog,这是一个基于ASP技术构建的简易博客系统,旨在为用户提供方便快捷的在线日志发布和管理平台。在Web开发领域,ASP(Active Server Pages)是微软推出的一种服务器端脚本环境,...
基于JFinalQ框架的简易博客系统设计源码是一套完整的博客系统实现,它不仅包含了核心的Java源代码,还涉及了大量的资源文件、配置文件和网页素材,构成了一个功能完备的博客平台。JFinalQ是一个基于Java语言的轻量级...
标题 "10分钟创建一个Ruby博客" 涉及到的是使用Ruby编程语言快速搭建一个博客系统的教程。在这个过程中,我们将探讨Ruby的基础知识,以及如何利用特定的工具和框架来构建这样的系统。Ruby是一种面向对象的、动态的、...
本文以创建一个简单博客应用为例,展示了Django的基本用法。首先,通过命令行创建项目和应用,接着定义Post模型以管理博客文章的标题、内容及创建时间。随后,编写视图函数以获取并渲染所有文章,配置URL以处理请求...
总之,这个20分钟编写的博客框架展示了CodeIgniter的强大之处,即使在短时间内也能快速搭建出一个功能完备的应用。对于初学者来说,这是一次很好的实践,可以帮助理解MVC架构和PHP框架的运作方式。而对于有经验的...
基于Yii框架开发的博客,如"YiiBlog",充分利用了Yii的特性来构建一个功能完备、性能优秀的博客系统。下面我们将深入探讨Yii框架及其在开发博客系统中的应用。 Yii框架的核心特点包括: 1. 高性能:Yii采用缓存...
本项目便是一个典型的案例,它展示了一个基于Python语言和Flask框架构建的简易博客系统的设计与实现。 首先,Python作为一门广泛应用于各个领域的高级编程语言,以其简洁明了的语法和强大的第三方库支持,成为开发...
在本篇【Python一日一练102----创建简易博客(下)】的教程中,我们将深入探讨如何使用Python编程语言构建一个简单的博客系统。这个教程可能是基于Django框架进行的,因为Django是Python中广泛用于Web开发的高级框架...
Hexo是基于Node.js的快速、简单且强大的博客框架,具有丰富功能和特性,此项目包含使用Hexo初始化网站、创建文章、生成静态文件、启动本地服务器和部署网站等操作的基本指南,用户可借此轻松搭建并维护个人博客。...
4. **动手实践**:创建一个简单的项目,如博客系统,来应用所学知识。 总结来说,"一个简单的PHP开发框架"意味着这个框架旨在降低PHP开发的门槛,提供基本的MVC结构和必备功能,让开发者能够快速上手,搭建自己的...
本项目基于Java的轻量级Web开发框架——JFinal,构建了一个高效、简洁且易于维护的个人博客系统。下面将详细介绍这个系统的核心技术和实现细节。 **JFinal框架介绍** JFinal是基于Java的MVC(Model-View-...