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