【问题标题】:Rails check_box form to create has_many relationshipRails check_box 表单创建 has_many 关系
【发布时间】:2016-03-05 03:29:22
【问题描述】:

我有一个名为account 的模型has_many :options。我想创建一个表单,我可以在其中列出所有选项,旁边有一个复选框,因此当前帐户可以在表单中选择他/她想要的选项,这样我就可以创建 has_many 关系。

这就是我所拥有的

def index
    @account = current_account
    @options = ['Op 1', 'Op 2', 'Op 3', 'Op 4']
end

对于视图:

 <%= form_for(@account, url: options_path) do |f| %>
    <% @options.each do |op| %>
      <div class="checkbox">
         <%= f.check_box(?????, {:multiple => true}, op, nil) %>
      </div>
    <% end %>
    <%= f.submit class: 'btn btn-default' %>
  <% end %>

这显然不起作用,我很确定这不是实现我想要做的事情的正确方法,所以任何帮助都将不胜感激。

【问题讨论】:

    标签: ruby-on-rails checkbox


    【解决方案1】:

    您可以使用 fields_for:

    <%= form_for(@account, url: options_path) do |f| %>
      <%= fields_for :options do |options_form| %>
          <% @options.each do |option| %>
             <div class='checkbox'>
               <%= options_form.label option do %>
                   <%= options_form.check_box option %> <%= option %> 
               <% end %>
             </div>
          <% end %>
        <% end %>
        <%= f.submit class: 'btn btn-default' %>
    <% end %>
    

    在您的参数中,您将获得如下值:params[:account][:options]['Op1'],值为 '1' 为真,'0' 为假。

    【讨论】:

    • 使用该代码我得到未定义的方法'Op 1'。我相信这是因为您在下面指定的参数响应。没有解决办法吗?
    猜你喜欢
    • 2014-07-13
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多