2011-08-04 63 views
3

有沒有辦法控制窗體中的* submit_tag *來調用不同的動作到默認的'update'動作?Rails自定義submit_tag

我試過使用下面的submit_tag,但它仍然將我重定向到人控制器中的'update'動作。

<%= submit_tag "Save", :controller => "people", :action => "set_password", :method => "put" %> 

爲什麼我這樣做的原因是, 我對Person類兩個更新形式,一種用於更新基本信息,以及一個用於更新密碼。我想處理表單提交的不同。 對於'更新密碼錶單',我不得不另外添加一些東西。 *驗證額外的用戶輸入(當前密碼) *如果有錯誤,直接到'更新密碼'表格

我在做錯事嗎?或者我應該區分「更新」方法內的情況?

+0

這已經在這裏找到答案http://stackoverflow.com/questions/6878195/ruby-on-rails-i-有兩種形式 - 我怎麼做 - 提交標籤的一種形式 - 裏面一個/ 6878470#6878470 – jamesc

+0

謝謝詹姆斯,所以是處理不同的形式提交相同的'更新'方法ror中的一個好結構? –

+0

這是您唯一的選擇!你不能在表單中填寫表單,並且@ kain指出它是表單聲明,它決定了將被調用的路徑/路由/控制器操作,而不是提交按鈕。 – jamesc

回答

6

你要告訴的形式去哪裏,而不是在submit_tag

<%= form_tag @object, url, :method => 'PUT' %> 
+0

你可以有多個提交標籤,但它們會一樣控制器。這個問題已被回答加載次數 - 在這裏看到一個例子http://stackoverflow.com/questions/6878195/ruby-on-rails-i-have-two-forms-how-do-i-move-the-提交 - 標籤的一外形內-A/6878470#6878470 – jamesc