simple_form没有模型和选择框

时间:2013-07-24 09:14:58

标签: ruby-on-rails simple-form

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

= 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 []' 在我看来。我做错了什么?

2 个答案:

答案 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}