0

我想在我的显示视图中有一个拆分下拉按钮(twitter bootstrap 样式),以便用户可以使用集合(出价、in_progress、完成、取消)更改他们的“工作”的当前“状态”。

这是我当前如何更改 _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();

这不起作用 - 我在正确的轨道上吗?看来这应该提交表格。

4

1 回答 1

1

您可以直接在显示视图中创建一个仅包含状态字段的新表单(或在部分中,并不重要)。然后让一些 javascript 在下拉列表更改时提交表单。

如果您使用 rails form-helper,它们会将提交指向控制器的更新操作,并且由于仅存在 state 属性,因此该属性将被更新。

于 2013-02-10T21:31:12.113 回答