2014-09-10 102 views
0

我目前試圖將許多參數推入button_to方法,但無濟於事。我目前正在使用rails文檔來查看它可以支持的參數 - 但我遇到了麻煩。Rails button_to參數混淆

link to api docs

<%= button_to 'My title.',{:action => "update", :answer => "[email protected]@@", :method => :patch, :data => {:confirm => "Are you sure?"}}, {:class => "btn btn-danger"}%> 

我在找一些HTML類添加到該按鈕,重新定義它的HTTP方法,並調用JavaScript提示框(通過:數據:確認)並且還添加:答案參數提交內容。

我只是無法讓軌道解析所有這些正確。

+0

哇。我認爲這個按鈕是表單的一部分?如果是這樣,你可以在表單標題中指定動作(這將刪除需要指定動作和http方法。參數「答案」對於那個按鈕是特殊的? – Anthony 2014-09-10 14:23:21

回答

1

「,介紹了此頁http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html ,額外參數(如:你的情況回答)上可以與傳遞:params項

的第二個參數必須的東西,都可以分解成一個完整的路徑,比如「/ foos/123/update」,你可以用{:action => "update", :id => foo.id}來做到這一點:在這種情況下,rails將使用當前的控制器來確定在url中使用哪個控制器,我個人認爲它更清晰,使用像update_foo_path(foo)或任何其他路徑幫手,這將只生成一個完整的路徑作爲字符串形式"/foos/123/update"

嘗試一些像這樣的事情:

<%= button_to 'My title.', {:action => "update", :id => foo.id}, :params => {:answer => "[email protected]@@"}, :method => :patch, :form_class => "btn btn-danger", :data => {:confirm => "Are you sure?"} %> 

button_to是一種在屁股痛的,因爲它的論據都是散列或單鍵值對這個名單,它真的很容易得到錯誤的結構。我傾向於避免它們出現任何複雜的情況,並使用form_tag代替它:它更具可讀性並且不太可能出錯。