`
yanzilee9292
  • 浏览: 540961 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Rails3入门锦集(4) Controller的创建,添加,修改,删除代码

阅读更多

入门锦集1-8都来自官方的翻译:http://edgeguides.rubyonrails.org/getting_started.html

 

 

1. 显示一条Post

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

 

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

 

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

 

<p class="notice"><%= notice %></p>
 
<p>
  <b>Name:</b>
  <%= @post.name %>
</p>
 
<p>
  <b>Title:</b>
  <%= @post.title %>
</p>
 
<p>
  <b>Content:</b>
  <%= @post.content %>
</p>
 
 
<%= link_to 'Edit', edit_post_path(@post) %> |
<%= link_to 'Back', posts_path %>

 

 

2. 编辑Posts

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

 

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

 

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

 

<h1>Editing post</h1>
 
<%= render 'form' %>
 
<%= link_to 'Show', @post %> |
<%= link_to 'Back', posts_path %>

 

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

 

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

 

def update
  @post = Post.find(params[:id])
  if @post.update_attributes(params[:post])
    respond_with @post, :notice => 'Post was successfully updated.' 
  else
    render :action => 'edit'
  end
end

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

 

 

3. 删除一条Post

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

 

def destroy
  @post = Post.find(params[:id])
  @post.destroy
  respond_with @post
end

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

 

 

转自: http://onia.iteye.com/blog/826935

分享到:
评论

相关推荐

    Ruby on Rails入门经典代码

    本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习Rails的宝贵资源,帮助初学者快速掌握这个强大的框架。 1. **Rails基础知识**: - MVC架构:Rails的核心设计模式,模型负责数据处理,视图负责展示,控制器...

    Rails 101 入门电子书

    ### Rails 101 入门电子书知识点详解 #### 一、简介 《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别...

    Rails3常用命令行命令

    此外,Rails的迁移(Migrations)系统允许你对数据库结构进行修改,如创建新表: ```bash rake db:create # 创建数据库 rake db:migrate # 应用迁移文件,生成对应的数据库表 ``` Rails的scaffold命令是一个强大的...

    rails3入门指南

    ruby on rails文档,rails3入门指南

    Ruby on Rails入门经典

    5. **Scaffold**:Rails提供的一种快速创建基本CRUD(创建、读取、更新、删除)功能的工具,帮助开发者快速搭建应用的原型。 6. ** erb和haml模板语言**:Rails支持两种视图模板语言,erb是嵌入式Ruby代码,而haml...

    Ruby on Rails入门权威经典

    《Ruby on Rails入门权威经典》是一本专门为初学者设计的指南,旨在帮助读者全面掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby编程语言的开源框架,以其“DRY(Don't Repeat ...

    Rails项目源代码

    这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何利用Rails的强大功能来创建一个允许用户上传、分享和浏览图片的应用。 1. **Rails框架基础**: Rails的核心理念是DRY(Don't...

    Ruby on Rails入门例子

    Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...

    Rails入门教程一(翻译).pdf

    **Rails入门教程一(翻译).pdf** Rails,全称为Ruby on Rails,是一个基于Ruby语言的开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,用于构建数据库驱动的web应用。本教程是针对初学者设计的,...

    ruby on rails入门基础

    - Rails的scaffolding功能可以快速生成一个基本的CRUD(创建、读取、更新、删除)界面,帮助开发者快速搭建原型。 11. **测试**: - Rails内置了测试框架Rspec和MiniTest,通过编写测试用例确保代码的正确性。 ...

    ruby on rails入门

    ### Ruby on Rails 入门知识点详解 #### Rails简介与特性 **Rails** 是一种用于构建 Web 应用程序的开源框架,它使用 **Ruby** 编程语言编写而成。Rails 自发布以来,就以其优雅、高效及易于使用的特性受到开发者...

    Rails 3 in Action

    《Rails 3 in Action》是2011年由Ryan Bigg撰写的一本关于Ruby on Rails框架的权威指南,专门针对当时最新的Rails 3.1版本进行了深入解析。这本书旨在帮助开发者充分利用Rails 3.1的强大功能,提升Web应用开发的效率...

    [Rails] Rails 3 入门教程 (英文版)

    [Apress] Rails 3 入门教程 (英文版) [Apress] Beginning Rails 3 (E-Book) ☆ 出版信息:☆ [作者信息] Cloves Carneiro Jr., Rida Al Barazi [出版机构] Apress [出版日期] 2010年09月01日 [图书页数] 400页...

    rails3教程

    ### Rails3教程知识点详解 #### 一、Rails3简介与...4. **添加路由**:使用Rails的路由系统来映射URL到相应的控制器动作。 通过这些步骤,你可以构建出一个功能完整的博客应用,并深入了解Rails的核心概念和技术。

Global site tag (gtag.js) - Google Analytics