`
jiajie0531
  • 浏览: 29563 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

rails4 5.11 Updating Articles

 
阅读更多

我们已经完成了CRUD中的“CR”部分了。现在让我们关注“U”这部分,更新articles。

 

第一步我将要做的是,在ArticlesController中增加一个action edit。

defedit

@article= Article.find(params[:id])

end

这个视图将会包含一个form,类似于我们用过的那个,在我们创建新的articles的时候。创建一个文件app/views/articles/edit.html.erb,编辑如下:

<h1>Editing article</h1>

 

<%= form_for :article, url: article_path(@article), method: :patch do |f| %>

<% if @article.errors.any? %>

<div id="error_explanation">

<h2><%= pluralize(@article.errors.count, "error") %> prohibited

this article from being saved:</h2>

<ul>

<% @article.errors.full_messages.each do |msg| %>

<li><%= msg %></li>

<% end %>

</ul>

</div>

<% end %>

<p>

<%= f.label :title %><br>

<%= f.text_field :title %>

</p>

 

<p>

<%= f.label :text %><br>

<%= f.text_area :text %>

</p>

 

<p>

<%= f.submit %>

</p>

<% end %>

 

<%= link_to 'Back', articles_path %>

此刻,我们把这个form定位到action update,其还没有被定义, 但接下来就会被实现的

method: :patch这个属性告知Rails,我们想让这个form通过PATCH HTTP方法来提交,HTTP方法就是你所期待的用来update资源,通过REST协议。

form_tag中的第一个参数是一个对象,@article,会引起helper帮助在form中填充对象的字段。用相同的名字来传入一个标签(:article),正如这个实例变量(@article)神奇地指向相同的行为。这就是现在发生的。更多的细节可以在参考form_for documentation.

接下里,我们需要创建action update,在这个文件里app/controllers/articles_controller.rb:

defupdate

@article= Article.find(params[:id])

 

if@article.update(article_params)

redirect_to @article

else

render 'edit'

end

end

 

private

defarticle_params

params.require(:article).permit(:title, :text)

end

当你想要修改一条已存在的记录时,新的方法update会被使用,它接收一个hash,里面包含了你想要更新的那些特性。比如放在以前,如果在更新article时有个错误,我们会返回form,显示错误信息给用户看。

我们复用方法 article_params,这个我们前面在action create的时候已经定义过了。

information:你不需要为了更新而传入所有参数。比如,如果你调用了@article.update(title: ‘A new title’), Rails将仅仅更新特性title,不处理其他的特性。

最后,在罗列所用的articles中,我们想要显示一个链接到action edit,因此让我们现在来增加吧,app/views/articles/index.html.erb 在这里显示链接“Show”:

<table>

<tr>

<th>Title</th>

<th>Text</th>

<th colspan="2"></th>

</tr>

 

<% @articles.each do |article| %>

<tr>

<td><%= article.title %></td>

<td><%= article.text %></td>

<td><%= link_to 'Show', article_path(article) %></td>

<td><%= link_to 'Edit', edit_article_path(article) %></td>

</tr>

<% end %>

</table>

同样的,在文件app/views/articles/show.html.erb 中,我们也会增加链接,因此在article的页面也会有一个“Edit”的链接。在模板的底部增加这个链接:

...

 

<%= link_to 'Back', articles_path %>

| <%= link_to 'Edit', edit_article_path(@article) %>

下面就是我们的程序看上去的效果:

原文:http://guides.rubyonrails.org/getting_started.html

--end

分享到:
评论

相关推荐

    Rails 4 in Action, Second Edition.pdf

    ### Rails 4 in Action, 第二版:关键知识点解析 #### 一、Rails 4简介与新特性 **Rails 4 in Action, 第二版** 是一本深入介绍Ruby on Rails框架的专业书籍。该书由Ryan Bigg、Yehuda Katz、Steve Klabnik和...

    The Rails 4 Way

    ### 关于《The Rails 4 Way》的知识点总结 #### 标题:The Rails 4 Way 这本书主要讲述了Ruby on Rails 4版本的核心特性和最佳实践。Ruby on Rails(简称Rails)是一个用Ruby语言编写的开源全栈Web应用框架。本书...

    Rails 4 Test Prescriptions

    ### Rails 4 Test Prescriptions — 构建健康代码库 #### 一、书籍概述与价值 《Rails 4 Test Prescriptions》是一本专注于教授开发者如何为Rails应用编写测试的书籍,作者Noel Rappin凭借多年的经验提炼出了一...

    Agile Web Development with Rails 4th edition(敏捷Web开发与Rails:程序指南 第四版)

    本书旨在帮助开发者充分利用Rails 4的特性,提高开发效率,实现快速迭代和高质量的代码编写。 Rails是一个强大的、基于模型-视图-控制器(MVC)架构模式的开源Web应用框架,它以Ruby编程语言为基础,强调简洁和生产力...

    Agile Web Development with Rails 4

    Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details., Tens of thousands of ...

    Crafting Rails 4 Applications

    ### 关于《Crafting Rails 4 Applications》的关键知识点解析 #### 标题解析:Crafting Rails 4 Applications - **Rails 4**:Rails 4是Ruby on Rails框架的一个版本,该版本在2013年发布。Ruby on Rails(简称...

    Ruby on Rails 4 Tutorial 中文版

    Ruby on Rails 4 Tutorial 是一本深受开发者欢迎的书籍,它详细介绍了如何使用Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的开源框架,以其“约定优于配置”(Convention over ...

    Rails项目源代码

    Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...

    [Rails] Crafting Rails 4 Applications (英文版)

    [Pragmatic Bookshelf] Crafting Rails 4 Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Get ready to see Rails as you've never seen it before. Learn how to ...

    Rails 4 in Action

    唔,1分应该还是有人下的吧,共同学习进步,Ruby on Rails is an open source web framework.... "Rails 4 in Action" is a fully-revised second edition of "Rails 3 in Action." This hands-on, compreh...

    Crafting Rails 4 Applications.pdf

    一本Rails 4开发进阶教程,适合有一定开发经验的Ruby on Rails开发人员阅读

    Rails 4 Application Development.pdf

    ### Rails 4应用开发知识点概览 #### 一、Rails 4框架介绍 Rails 4是Ruby on Rails(简称Rails)的一个重要版本,它是一种用于Web应用程序开发的模型-视图-控制器(Model-View-Controller,MVC)架构框架。Rails 4...

    The rails4 way

    ### 关于《The Rails 4 Way》的知识点总结 #### 书籍概述 《The Rails 4 Way》是一本深入探讨Ruby on Rails 4框架特性的专业书籍,由Obie Fernandez、Kevin Faustino和Vitaly Kushner共同撰写。本书旨在为开发者...

    Rails 4 Test Prescriptions(Pragmatic,2014)

    Rails 4 Test Prescriptions is a comprehensive guide to how tests can help you design and write better Rails applications. In this completely revised edition, you'll learn why testing works and how to...

Global site tag (gtag.js) - Google Analytics