• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[rubyonrails]跟我学之(8)修改数据

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

修改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,谢谢!


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[ROR] ruby on rails 入门知识发布时间:2022-07-14
下一篇:
rubyonrails在model中使用enum的注意事项发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap