2013-02-10 22 views
0

我希望在我的show view中有一個拆分下拉按鈕(twitter bootstrap style),以便用戶可以使用集合(出價,in_progress,完成,取消)更改其'作業'的當前'狀態'。在'show'視圖中​​使用Rails表單元素?

這裏是我是如何改變目前的狀態在我的_form(正常工作):

<%= f.input :state, :collection => %w(bids in_progress complete canceled), :checked => 'bids', :as => :radio_buttons %> 

但我寧願用戶不必經過整個表單只是改變狀態。如果你願意的話,他們可以很好地改變國家的狀態。

我應該如何將其轉換爲下拉列表並在表單外使用它?注意 - 我仍然希望保留我的表單中的比例集合。

我應該只用按鈕創建一個部分,並在'顯示'視圖中呈現它嗎?我需要添加一些東西給我的控制器嗎?也許這會更容易/更好地使用JavaScript?很多問題,不確定從哪裏開始。謝謝。

更新

我創建了一個局部與此:

<%= simple_form_for(@job, :remote => true) do |f| %> 
    <%= f.input :state, collection: [ ['bids', 'Bid'], ['in_progress', 'In Progress'], ['complete', 'Complete'] ], label_method: :last, value_method: :first, :onchange => 'this.form.submit()' %> 
<% end %> 

,並將此位的javascript:

$(this.form).submit(); 

這不是工作 - 我是在正確的軌道上?這似乎應該提交表格。

回答

1

你可以直接在show view中創建一個只帶有state字段的新表單(或者在部分中,並不重要)。然後有一些JavaScript提交表單,只要下拉改變。

如果您使用rails form-helper,他們會將提交指向控制器的更新操作,因爲只有狀態屬性存在,這是唯一將被更新的屬性。

+0

jlundqvist,請參閱上面的更新。在這種情況下,我會如何使用一個form-helper?我閱讀了文檔,但不完全瞭解如何使用是在與收藏的情況。謝謝。 – cpursley 2013-02-14 00:40:59

+0

您正在使用表單助手('simple_form_for')。我猜測問題出在你添加到':onchange'上的javascript中。嘗試類似':onchange =>(「$('#form_name')。submit()」)'。 – jlundqvist 2013-02-15 14:21:07

相關問題