我正试图通过此gem在我的笔记模型上使用标记。但是,即使我已明确添加(2个单独的方式):tag_list => []当我尝试提交它们时,我的笔记控制器的强大参数,我仍然在日志中得到一个未经许可的参数错误?我已经运行了bundle install,并且也进行了迁移。
以下是我的文件:
#/models/note.rb
class Note < ActiveRecord::Base
belongs_to :user
acts_as_taggable
validates_presence_of :name, :note_text, :note_style, :note_description
end
#/controllers/notes_controller.rb
.
.
.
def note_params
params.require(:note).permit(:name, :note_style, :note_text, :note_description, :tag_list => [])
end
和我的笔记形成:
.form-group
= f.label :tag_list, "Tags (seperate by comma)"
= f.text_field :tag_list, class: 'form-control'
我跟踪了宝石中的所有东西,但我仍然无法让它工作。
答案 0 :(得分:2)
我实际上是通过添加:tag_list来制作强大的参数来实现它。知道为什么这样有效,而不是他们如何指定在gem文档中做到这一点?
#/controllers/notes_controller.rb
.
.
.
def note_params
params.require(:note).permit(:name, :note_style, :note_text, :note_description, :tag_list, :tag_list => [])
end
答案 1 :(得分:1)
act-as-taggable-on gem使用多态关联。在你的情况下,作为空数组的param无法初始化,这可能导致了问题。希望这可以解决你的困惑。 : - )
答案 2 :(得分:1)
:tag_list => []
,因为select表单在提交表单时会返回一个数组。
由于您使用的是文本字段而不是select标记,因此在提交表单时您没有返回数组,而是单个值(文本字段中的字符串),因此您只需要:tag_list
in您的许可参数列表。
答案 3 :(得分:0)
尝试在允许的参数列表中使用它 :tag_list =&gt; [:name,:taggings_count,:count]