【问题标题】:simple_form without model and select box没有模型和选择框的 simple_form
【发布时间】:2013-07-24 09:14:58
【问题描述】:

我正在尝试创建仅用于搜索的选择 表单不直接发布到服务器这里是从视图中的代码:

= simple_form_for :tags, url: '#' do |f|
  = f.input 'id[]', collection: @tags

@tags 只是主动关系 - 来自 acts-as-taggable-on 的标签 这是我的控制器代码:

@tags = project.user_statuses.tag_counts_on(:tags)

从控制台看起来像:

[#<ActsAsTaggableOn::Tag id: 1, name: "amazing">, 
 #<ActsAsTaggableOn::Tag id: 2, name: "bfc-release">,
 #<ActsAsTaggableOn::Tag id: 3, name: "demo">,
 #<ActsAsTaggableOn::Tag id: 4, name: "awesome">,
 #<ActsAsTaggableOn::Tag id: 5, name: "project1">]

但我明白了 未定义的方法 `id[]' for # 在我看来。我做错了什么?

【问题讨论】:

    标签: ruby-on-rails simple-form


    【解决方案1】:

    SimpleForm 尝试获取该字段的值。它接受对象 (:tags) 并向其发送一个名为字段(id[]) 的方法。所以这导致:tags.send 'id[]'。因为 Symbol 类没有这样的方法,所以报错了。

    在对象不是模型的情况下,使用 simple_form_for 可能是个坏主意。

    【讨论】:

      【解决方案2】:

      似乎这是一个糟糕的语法和非信息性错误消息

      当我添加“as:selectbox”选项时出现:

       = simple_form_for :tag, url: '#' do |f|
         = f.input 'ids',
           as: :select,
           collection: @tags,
           label_method: :name,
           value_method: :id,
           input_html: {:multiple => false}
      

      【讨论】:

        猜你喜欢
        • 2012-02-29
        • 1970-01-01
        • 2012-11-19
        • 2017-09-10
        • 2019-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-09
        相关资源
        最近更新 更多