修改views

修改index视图(app/views/posts/index.html.erb),添加编辑链接,如下:

<h1>Our blogs</h1>
<% @posts.each do |post| %>
<h2><%=link_to post.title,post%></h2>
<%=post.context%><br/><hr/>
<p><%= link_to "Edit",edit_post_path(post)%></p>
<% end %>
<p><%= link_to "Add a post", new_post_path %></p>

即添加以下逻辑:

  <p><%= link_to "Edit",edit_post_path(post)%></p>

其中, edit_post_path,是之前《[ruby on rails] 跟我学之路由映射》提到的edit动作的prefix添加了_path后缀后的快捷方式,能够接受参数,此处接受post实例对象。

然后是编辑视图,不妨先把new视图拷贝下,作为编辑视图。修改下标题和提交链接,使之成为编辑对应的信息。如下:

<h1>Edit  post</h1>

<%= form_for @post do |f| %>
<p>
<%= f.label :title%><br/>
<%= f.text_field :title%>
</p>
<p>
<%= f.label :context%><br/>
<%= f.text_area :context%>
</p>
<p>
<%= f.submit "Edit Post"%>
</p> <% end %>

  

修改actions

那么接下来,需要修改动作,是edit动作呢?还是update?由于加载是get,所以先修改edit,如下:

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

以上只是处理了edit的get请求,post请求需要修改update动作,如下:

  def update
@post = Post.find(params[:id])
if @post.update_attributes(post_params)
redirect_to posts_path, :notice=>"Your post has been updated"
else
render "edit"
end
end

其中post_params是之前章节提到的强类型。

运行服务

rails s,然后打开 http://localhost:3000/posts  ,编辑并提交,如下图:

转载请注明本文来自:http://www.cnblogs.com/Tommy-Yu/p/4142096.html,谢谢!

[ruby on rails] 跟我学之(8)修改数据的更多相关文章

  1. [ruby on rails] 跟我学之(9)删除数据

    首先需要在index页加个删除链接,并提供一个删除的确认,用户确认删除时,直接删除数据. 修改views 修改 app/views/posts/index.html.erb,如下: <h1> ...

  2. [ruby on rails] 跟我学之(7)创建数据

    通过form来创建数据,本章节将会涉及内容:创建form,用户重导向,渲染views 和 flash消息. 1. views初步 编辑 app/views/posts/index.html.erb这个 ...

  3. [ruby on rails] 跟我学之(6)显示指定数据

    根据<[ruby on rails] 跟我学之路由映射>,我们知道,可以访问 GET    /posts/:id(.:format) 来显示具体的对象. 1. 修改action 修改 ap ...

  4. [ruby on rails] 跟我学之(5)显示所有数据

    之前的index页,显示的是hello world,现在将其修改为显示我们在rails console里面录入的数据. 1. 修改action 如之前的章节<[ruby on rails] 跟我 ...

  5. [ruby on rails] 跟我学之(4)路由映射

    前面<[ruby on rails] 跟我学之Hello World>提到,路由对应的文件是 config/routes.rb 实际上我们只是添加了一句代码: resources :pos ...

  6. [ruby on rails] 跟我学之(3)基于rails console的查增删改操作

    本章节展开对model的介绍:包括查增删改操作.紧接着上面一节<[ruby on rails] 跟我学之HelloWorld> 创建模型 使用命令创建模型 创建表post,默认自带两栏位 ...

  7. [ruby on rails] 跟我学之(2)HelloWorld

    1. 创建工程 rails new blog 2.查看下文件结构 tree 输出如下,请留意红圈中的部分. Gemfile, 用来管理应用程序的gems, 有点类似于python的包,有专门的网站来查 ...

  8. [ruby on rails] 跟我学之(1)环境搭建

    环境: ubuntu 12.04 (64bit) 代理: 自己最好弄一个代理. 环境配置指令如下: sudo apt-get update sudo apt-get install curl \cur ...

  9. [ruby on rails] 跟我学之(10)数据输入验证

    这里简单加上几个验证,非空,最小长度,唯一 修改模型 修改app/models/post.rb文件,如下: class Post < ActiveRecord::Base #attr_acces ...

随机推荐

  1. Bootstrap3.0学习第十六轮(进度条、媒体对象、列表组、面板)

    详情请查看http://aehyok.com/Blog/Detail/23.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...

  2. [设计模式] javascript 之 代理模式

    代理模式说明 说明:顾名思义就是用一个类来代替另一个类来执行方法功能,这个模式跟装饰模式有点相似,不一样的是,代理模式是代替客户初始化被代理对象类,而装饰模式采用接口或初装饰者参数引用的方式来执行的. ...

  3. 2016 版 Laravel 系列入门教程(二)【最适合中国人的 Laravel 教程】

    本教程示例代码见: https://github.com/johnlui/Learn-Laravel-5 在任何地方卡住,最快的办法就是去看示例代码. 本篇文章中,我将跟宝宝们一起学习 Laravel ...

  4. shell将输入的参数逆序

    #! /usr/bin/ksh count=$#  //总共输入参数 cmd="echo" while [[ $count -gt 0 ]] do cmd="$cmd \ ...

  5. jQuery插件开发详细教程

    这篇文章主要介绍了jQuery插件开发详细教程,将概述jQuery插件开发的基本知识,最佳做法和常见的陷阱,需要的朋友可以参考下 扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间. ...

  6. CSS中font-style的斜体属性Italic oblique的区别

    要搞清楚这个问题,首先要明白字体是怎么回事.一种字体有粗体.斜体.下划线.删除线等诸多属性.但是并不是所有字体都做了这些,一些不常用的字体,或许就只有个正常体,如果你用Italic,就没有效果了~这时 ...

  7. BIEE连接数据库的方法

    BI创建(数据)分析.仪表盘.报表前,都需要对数据进行建模,在oracle biee里称为创建“资料档案库”-该文件后缀为RPD,所以一般也称为创建RPD文件. 步骤: 1.从windows开始菜单里 ...

  8. Codeforces 46D Parking Lot

    传送门 D. Parking Lot time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  9. configure new linux

    vim   http://www.cnblogs.com/wswang/p/5088078.html zsh  sh -c "$(curl -fsSL https://raw.github. ...

  10. MVC简介

    全名是Model View Controller,模型-视图-控制器,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互 ...