`
clark1231
  • 浏览: 254607 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

快速创建一个简单博客的框架

阅读更多

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.postcomment两张表关联起来

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.增加commentnewedit页面中的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 %>&nbsp;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的显示

indexshow页面中的comment.post改为comment.post.title


9.修改追加comment后的跳转

Controllers/comments_controller.rb

create函数中的创建成功后的跳转改到所在的postshow页面中

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
0
0
分享到:
评论

相关推荐

    Hexo采用Nodejs开发的一个快速简单和强大的博客框架

    Hexo是一个基于Node.js的开源博客框架,它以其快速、简洁和强大的特性赢得了广大开发者和博主的喜爱。在JavaScript开发领域,Hexo作为一个内容管理系统(CMS),使得创建、管理和发布个人或团队博客变得极其便捷。 ...

    blog框架,一个简单的BLOG框架

    在“blog框架,一个简单的BLOG框架”中,我们可以推测这是一个为初学者设计的轻量级博客系统开发框架。它的目标是通过简洁的代码和易于理解的结构,让新手能够快速上手。以下是一些可能包含在这个框架中的关键知识点...

    博客 blog框架模板.zip

    3. **Hexo**: 也是一个静态博客框架,基于Node.js,快速、简洁且易于部署。 4. **Django Blog**: Django框架下的博客应用,提供完整的后台管理界面和多种功能。 5. **Flask-Blogging**: Flask微型框架上的博客扩展,...

    JavaScript_一个快速、简单、强大的博客框架,由Nodejs提供支持.zip

    这个压缩包"JavaScript_一个快速、简单、强大的博客框架,由Nodejs提供支持.zip"很可能包含了一个基于JavaScript和Node.js的博客框架,如Hexo。Hexo是一款快速、简洁且高效的静态博客框架,它使用Markdown(或其他...

    ssm项目blog博客框架

    这个"blog博客框架"是一个使用SSM框架搭建的简单博客系统,旨在帮助开发者快速构建自己的博客平台。它摒弃了传统的XML配置方式,采用注解驱动的方式进行开发,使得代码更加简洁易懂。 1. **Spring框架**:Spring是...

    Hexo - 采用Node.js开发的一个快速、简单和强大的博客框架.zip

    Hexo是一个基于Node.js的开源博客框架,以其快速、简洁且强大的特性深受开发者喜爱。它允许用户通过简单的配置和命令行工具快速搭建个人博客系统。Hexo的核心优势在于其高效的工作流程,它能够自动化处理文章的...

    一个简单博客

    【标题】"一个简单博客"指的是aspBlog,这是一个基于ASP技术构建的简易博客系统,旨在为用户提供方便快捷的在线日志发布和管理平台。在Web开发领域,ASP(Active Server Pages)是微软推出的一种服务器端脚本环境,...

    10分钟创建一个Ruby博客

    标题 "10分钟创建一个Ruby博客" 涉及到的是使用Ruby编程语言快速搭建一个博客系统的教程。在这个过程中,我们将探讨Ruby的基础知识,以及如何利用特定的工具和框架来构建这样的系统。Ruby是一种面向对象的、动态的、...

    20分钟写的博客框架

    总之,这个20分钟编写的博客框架展示了CodeIgniter的强大之处,即使在短时间内也能快速搭建出一个功能完备的应用。对于初学者来说,这是一次很好的实践,可以帮助理解MVC架构和PHP框架的运作方式。而对于有经验的...

    基于Yii 框架开发的博客.zip

    基于Yii框架开发的博客,如"YiiBlog",充分利用了Yii的特性来构建一个功能完备、性能优秀的博客系统。下面我们将深入探讨Yii框架及其在开发博客系统中的应用。 Yii框架的核心特点包括: 1. 高性能:Yii采用缓存...

    Python一日一练102----创建简易博客(下)源码

    在本篇【Python一日一练102----创建简易博客(下)】的教程中,我们将深入探讨如何使用Python编程语言构建一个简单的博客系统。这个教程可能是基于Django框架进行的,因为Django是Python中广泛用于Web开发的高级框架...

    一个简单的PHP开发框架

    4. **动手实践**:创建一个简单的项目,如博客系统,来应用所学知识。 总结来说,"一个简单的PHP开发框架"意味着这个框架旨在降低PHP开发的门槛,提供基本的MVC结构和必备功能,让开发者能够快速上手,搭建自己的...

    基于JFinal框架的个人博客系统

    本项目基于Java的轻量级Web开发框架——JFinal,构建了一个高效、简洁且易于维护的个人博客系统。下面将详细介绍这个系统的核心技术和实现细节。 **JFinal框架介绍** JFinal是基于Java的MVC(Model-View-...

    yii框架下的yii_blog 博客系统

    在这个"yii_blog 博客系统"中,你将学习到如何使用Yii框架来搭建一个简单的博客平台。 首先,Yii框架的核心特性包括MVC(Model-View-Controller)设计模式、主动记录(ActiveRecord)模式、缓存管理、身份验证和...

    利用Elements css framework写的一个简单页面框架

    标题中的“利用Elements css framework写的一个简单页面框架”指的是使用一个名为Elements的CSS框架来构建一个基础的网页布局。Elements框架通常提供预定义的样式、组件和布局工具,以简化前端开发过程,使得开发者...

    个人简易博客系统.rar

    Tkinter是Python的标准GUI库,易于学习,适合快速创建简单的窗口应用。 根据压缩包子文件的文件名称列表“个人简易博客系统”,我们可以推测这个压缩包可能包含以下内容: 1. ThinkPHP或Flask的源代码文件,如`....

    Node.js-基于React.jsNode.js的开源博客框架

    【标题】:“Node.js-基于React.js的Node.js开源博客框架” 这个项目是一个结合了Node.js后端技术和React.js前端框架的开源博客平台。它利用了Node.js的非阻塞I/O模型和JavaScript的全栈能力,实现了高效、可扩展的...

Global site tag (gtag.js) - Google Analytics