`

ruby on rails入门教程之post构建四

 
阅读更多

1. 显示一条Post

当你在index页面点击一条文章的链接时,它将指向一条类似 http://localhost:3000/posts/1 的地址。Rails是把它作为show动作资源来解释的,然后传递 1 作为 :id 的参数。下面是 show 动作:

  1. def  show  
  2.   @post  = Post.find(params[ :id ])  
  3.   respond_with @post   
  4. end   

show方法通过传入id值使用 Post.find 来搜索数据库中的单条记录,记录找到之后,Rails使用 show.html.erb 视图进行渲染:

  1. < p   class = "notice" > < %= notice % > </ p >   
  2.    
  3. < p >   
  4.   < b > Name: </ b >   
  5.   < %= @post.name % >   
  6. </ p >   
  7.    
  8. < p >   
  9.   < b > Title: </ b >   
  10.   < %= @post.title % >   
  11. </ p >   
  12.    
  13. < p >   
  14.   < b > Content: </ b >   
  15.   < %= @post.content % >   
  16. </ p >   
  17.    
  18.    
  19. < %= link_to 'Edit', edit_post_path(@post) % >  |  
  20. < %= link_to 'Back', posts_path % >   

2. 编辑Posts

和创建Post一样,编辑post也是一个两部分处理。第一步请求 edit_post_path(@post) , 该方法将调用控制器中的 edit 动作:

  1. def  edit  
  2.   @post  = Post.find(params[ :id ])  
  3. end   

找到请求的记录之后,Rails使用 edit.html.erb 视图显示出来:

  1. < h1 > Editing post </ h1 >   
  2.    
  3. < %= render 'form' % >   
  4.    
  5. < %= link_to 'Show', @post % >  |  
  6. < %= link_to 'Back', posts_path % >   

和 new 动作一样,Rails使用相同的 _form.erb 局部模板,不过这次,该表单将使用 PUT 方式到 PostsController, 而且提交按钮将显示为 “Update Post”。注意这里的 <%= link_to 'Show', @post %> 实际上是 <%= link_to 'Show', @post.id %>。

提交由该视图创建的表单将调用 update 动作:

  1. def  update  
  2.   @post  = Post.find(params[ :id ])  
  3.   if   @post .update_attributes(params[ :post ])  
  4.     respond_with @post :notice  =>  'Post was successfully updated.'    
  5.   else   
  6.     render :action  =>  'edit'   
  7.   end   
  8. end   

在update方法中,首先rails使用:id参数获取数据库中相应的post记录,然后使用 update_attributes 来更新表单中的内容到数据库中。如果更新成功,转到 show 页面,如果更新失败,那么重新回到 edit 页面。

3. 删除一条Post

最后,点击一条post的删除链接将请求destroy动作。

  1. def  destroy  
  2.   @post  = Post.find(params[ :id ])  
  3.   @post .destroy  
  4.   respond_with @post   
  5. end   

destroy方法将从数据库中移除相应的记录,然后浏览器将跳转到 index 页面。

文章出处:http://edgeguides.rubyonrails.org/getting_started.html

分享到:
评论

相关推荐

    Ruby on Rails入门例子

    在"Ruby on Rails入门例子"中,我们可能会遇到以下关键概念: - **路由(Routes)**:Rails的路由系统将URL映射到特定的控制器动作,定义了应用的导航结构。在`config/routes.rb`文件中配置路由规则。 - **生成器...

    ruby_on_rails 源代码上

    Ruby on Rails拥有庞大的开发者社区,提供了丰富的教程、插件和库。Stack Overflow、GitHub、RailsGuides和RailsCasts等资源对初学者和高级开发者都非常有帮助。 以上只是Ruby on Rails的部分基础知识,实际开发中...

    基于Ruby On Rails的在线购书系统

    《基于Ruby On Rails的在线购书系统》是一个深入探讨如何利用Ruby on Rails框架构建电子商务平台的项目。Ruby on Rails(RoR)是一个开源的Web应用框架,它遵循MVC(模型-视图-控制器)架构模式,以Ruby编程语言为...

    Ruby on rails blog (博客程序)

    Ruby on Rails 是一款基于Ruby语言的开源Web应用框架,它遵循MVC(Model-View-Controller)架构模式,使得开发者可以高效地构建功能丰富的Web应用程序。在这个“Ruby on Rails博客程序”中,我们将深入探讨如何在...

    Ruby on Rails轻松使用

    Ruby on Rails,简称RoR,是一款基于Ruby编程语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率,同时保持代码的简洁和可读性。RoR的核心理念是“Don't Repeat Yourself”(DRY)...

    ruby on rails 2.1 what is new (CN)

    ### Ruby on Rails 2.1 新特性详解...以上就是Ruby on Rails 2.1版本的一些主要新特性和改进之处。这些更新不仅提升了开发效率,还增强了应用的功能性和稳定性,对于正在使用Rails进行开发的团队来说是非常值得升级的。

    ruby on rails blog(博客)制作

    通过这个Ruby on Rails博客制作的例子,你不仅学会了如何构建一个基本的Web应用,还对Rails的MVC架构、数据库操作、路由设计、表单处理、测试和部署有了深入的理解。这是一个很好的起点,随着你对Rails的深入学习,...

    ruby on rails API

    Ruby on Rails(简称Rails)是一个基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,极大地简化了Web应用开发。API(Application Programming Interface)是Rails提供的一种允许...

    基于ruby on rails 的简单blog

    这个简单的blog项目是初学者了解Rails的好起点,通过实践,可以掌握Rails的基本用法,进一步深入学习数据库操作、模板引擎、路由、控制器以及测试等方面的知识,为成为Ruby on Rails开发大师打下坚实基础。

    lina, An amazing RESTful API provider based on Ruby on Rails( Not maintained ).zip

    “lina, An amazing RESTful API provider based on Ruby on Rails( Not maintained ).zip” 这个标题提到了一个名为“lina”的项目,它是一个基于Ruby on Rails构建的RESTful API服务提供商。RESTful API是Web服务...

    ruby on rails 实例1

    Ruby on Rails,简称RoR,是一款基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。RoR强调“DRY”(Don't Repeat Yourself)原则和“Convention ...

    使用Ruby on Rails快速开发web应用的教程实例

    Ruby on Rails 是一个使用Ruby语言编写的开源Web应用框架,其设计宗旨是使得开发Web应用更为快速和简洁。它基于著名的模型-视图-控制器(MVC)架构模式,旨在以更少的代码实现更多功能,提高开发效率。Ruby on Rails...

    ruby 1.8.7 rails 2.3.4

    Ruby 是一种面向对象的、动态类型的编程语言,而 Rails 是一个基于 MVC(模型-视图-控制器)架构的 Web 开发框架,它极大地简化了 Web 应用程序的构建过程。 在 Ruby 1.8.7 版本中,一些关键特性包括: 1. 全局变量...

    Building.Dynamic.Web.2.0.Websites.with.Ruby.on.Rails

    《构建动态Web 2..0网站:使用Ruby on Rails》不仅是一本介绍Ruby on Rails基础知识的书籍,更是一部深入探讨Web 2.0时代下如何利用这一强大框架构建高效、安全、高性能的动态网站的实用指南。对于希望学习或深化...

    中文版rails教程

    在Ruby on Rails中,开发者可以快速构建功能丰富的动态网站,因为它提供了大量的内置功能和库,如数据库连接、ORM(对象关系映射)系统ActiveRecord、模板引擎ActionView以及路由系统ActionController等。...

    web开发_ruby_on_rails

    ### Web开发:深入理解Ruby on Rails #### 一、引言与概述 Ruby on Rails (简称Rails) 是一种用于Web开发的开源框架,基于Ruby语言。Rails的设计理念强调程序员的生产力和代码的简洁性,因此它成为了Ruby语言的...

    Ruby on Rails打造企业级RESTful API项目实战我的云音乐

    《Ruby on Rails打造企业级RESTful API项目实战——我的云音乐》是一本深入探讨如何使用Ruby on Rails框架构建高效、可扩展的企业级API服务的实战教程。Ruby on Rails(简称Rails)是基于Ruby语言的开源Web开发框架...

Global site tag (gtag.js) - Google Analytics