【问题标题】:how to preselect an association checkbox using simple_form如何使用 simple_form 预选关联复选框
【发布时间】:2011-07-26 22:25:15
【问题描述】:

我有这段代码,同时使用simple_form

= simple_form_for :report do |f|
  = f.association :presets,
    :collection => @account.presets.collect{ |p| [p.name, p.id] },
    :as => :check_boxes

知道preset 的ID 是在params[:preset_id] 中传递的,我如何预先选择特定的preset 复选框?复选框的 HTML name 属性是 report[preset_ids][]

【问题讨论】:

    标签: ruby-on-rails checkbox associations simple-form


    【解决方案1】:

    根据 simple_form 文档:

    关联助手只是调用 引擎盖下的输入,所以所有选项 可用于 :select, :radio 和 :check_boxes 也可用于 协会。此外,您可以 手动指定集合,全部 连同提示:

       f.association :company, :collection
          => Company.active.all(:order => 'name'), :prompt => "Choose a Company"
    

    所以,你应该使用这样的东西:

    = simple_form_for :report do |f|
      = f.association :presets,
        :collection => @account.presets.collect{ |p| [p.name, p.id] },
        :as => :check_boxes,
        :checked => params[:preset_id]
    

    我没有使用 simple_form 的经验,但这可能会有所帮助:)

    【讨论】:

      【解决方案2】:

      每个人的更新。 :selected 选项对我不起作用。我用过:

      :checked => [2, 3]
      

      希望对某人有所帮助。

      【讨论】:

      • 对我来说也一样。 :selected 不起作用, :checked 起作用。当我们创建复选框而不是选择器时,这确实有意义!
      【解决方案3】:

      f.association 真的成功了,谢谢 :),对于预选、保存和一切,我没有足够的声誉来投票赞成你的答案 (@claudio-acciaresi) 这就是我在这里评论的原因.. .

      这是我的sn-p:

      <%= f.association :association, collection: Model.all, 
            value_method: :id, label_method: :name, 
            as: :check_boxes, include_blank: false %>
      

      将符号 :association 替换为模型中的当前 has_many。 将 Model.all 替换为您的源数据。

      希望它对其他人有用:)

      问候。

      【讨论】:

        【解决方案4】:

        不要忘记将 params[:preset_id] 转换为整数:

        params[:preset_id].to_i
        

        【讨论】:

          猜你喜欢
          • 2011-05-06
          • 1970-01-01
          • 2012-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-29
          • 2012-01-15
          • 2020-09-06
          相关资源
          最近更新 更多