[ruby on rails] 跟我學之修改資料

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   os   sp   for   on   

修改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] 跟我學之修改資料

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.