【问题标题】:Use your own default value when using form builders in Rails在 Rails 中使用表单构建器时使用您自己的默认值
【发布时间】:2011-08-15 12:12:19
【问题描述】:

我正在尝试为我的一个表单编写编辑/更新方法。唯一需要更改此模型的时间是从“非活动状态”变为“活动状态”。我想用一个按钮来做到这一点,但我不知道如何让它工作。我的带有按钮的表单如下所示:

<% 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 会起作用,但我不想使用这种方法。有什么建议吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案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 %>
    

    【讨论】:

      猜你喜欢
      • 2012-09-24
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 2022-01-20
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多