我正在尝试为我的一个表单编写编辑/更新方法。该模型需要更改的唯一时间是从“非活动状态”转变为“活动状态”。我想用一个按钮来做这个,但我无法弄清楚如何让它工作。带按钮的表单看起来像这样:
<% form_for [league, league_relation], :html => {:method => :put} do |form| %>
<%= form.error_messages %>
<fieldset>
<%= form.hidden_field :state, LeagueRelation::ACTIVE %>
<%= form.submit 'Activate User' %>
</fieldset>
<% end %>
此表单用于更新我的LeagueRelation模型,该模型是League模型的嵌套资源。默认状态为1,表示不活动。在这里,我试图创建一个只有一个按钮,表示激活的表单。由于这是一个表单构建器,Rails正试图将league_relation.state的值放入隐藏字段,而不是我想要的值。我知道使用hidden_field_tag可以工作,但我不想使用这种方法。有什么建议吗?
由于
答案 0 :(得分:1)
在这种情况下,我可能会使用button_to
助手而不是form_for
。也许是这样的:
button_to "Activate User",
:url => path_to_update_url,
:method => :put,
:state => LeagueRelation::ACTIVE
button_to帮助器将自动创建一个包含在表单中的按钮,其中包含您选择提供的所有参数。
编辑:
虽然如果你仍然想使用form_for,那么你可以手动指定这样的值:
<%= form.hidden_field :state, :value => LeagueRelation::ACTIVE %>