我正在尝试创建仅用于搜索的选择 表格不能直接发布到服务器这里是来自视图的代码:
= simple_form_for :tags, url: '#' do |f|
= f.input 'id[]', collection: @tags
@tags只是主动关系 - 标签来自 act-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 []' 在我看来。我做错了什么?
答案 0 :(得分:0)
SimpleForm尝试获取此字段的值。它需要对象(:tags
)并向其发送一个名为field(id[]
)的方法。所以这导致:tags.send 'id[]'
。而且因为Symbol类没有这样的方法,所以你得到了错误。
如果对象不是模型,也许使用simple_form_for是个坏主意。
答案 1 :(得分:0)
似乎这是一个错误的语法和非信息性错误消息
当我添加“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}