2010-11-01 51 views
2

我知道這可能非常簡單,但我似乎無法讓我的腦海裏浮現它。初學者的問題:在Rails視圖中輸入PUT更新

所以,在腳手架生成的應用程序中,我期待在show.html.erb中有一個鏈接/按鈕,將當前條目/行的status_id更改爲3

我瞭解如何使GET,POST和DELETE命令,把我沒有得到正確的語法在控制器發出PUT命令來將update方法(link_tobutton_to?)

謝謝!

回答

3
<%= link_to "Update", update_object_path(object), :method => :put %> 

控制器

def update 
    @obj = object.find(params[:id]) 
    @obj.status_id = 3 
    @obj.update_attributes 
    redirect_to :back 
end 
+0

謝謝!由於同一頁面上的其他按鈕會將status_id更新爲其他值(1,2等),因此如何將所需的status_id傳遞給更新方法? – 2010-11-01 01:01:31

+2

更改控制器方法以設置'@obj.status_id = params [:status_id]'並將鏈接中的路徑更改爲'update_object_path(object,:status_id => 1)'(將每個按鈕的1更改爲不同) – Jeremy 2010-11-01 04:54:25

+0

感謝BenB/Jeremy!然而,我得到'未定義的方法'update_person_path''(人是我的模型)。 'person_path'呈現正確,但其他一切都沒有('destroy_person_path','update_person_path'等)。我在routes.rb中的所有內容是'resources:people' – 2010-11-01 11:28:51