本篇延續[052]Ruby on Rails學習筆記-(3),
這邊談到
Update
render
delete
5.11:Update
首先在articles controller加上edit action,接著新增檔案
app/views/articles/edit.html.erb並且編輯內容最關鍵是這行:
<%= form_for :article,url:articles_path(@article),method:patch do |f| %>
表單中的method: :patch選項告訴 Rails 我們想使用PATCHHTTP method 來送出表單,
因為根據 REST protocol ,我們應該使用 HTTP method 來更新資料。
下一步,加入action:update,
def update
@article= Article.find(params[:id])
if @article.update(article_params)
redirect_to @article
else
render 'edit'
end
end
article_paramsmethod 是在新增 create action 的時候所定義的,現在我們再次的使用它。
也意味著,把param中所有屬性傳入update中。
5.12使用partial部分刪除View重複的部分
舉其中一例:
New article
<%= render 'form' %>
<%= link_to 'Back', articles_path %>
5.13:Delete
關鍵在於method與confirm,
<%=link_to ‘Destroy’,article_path(article),
method: :delete,data:{confirm: ‘Are you sure?’} %>
如圖:
最後附上實作的鏈結: