Rails 4 acts_as_taggable_on :tag_list => [] 强参数不起作用?
Rails 4 acts_as_taggable_on :tag_list => [] strong param not working?
我正在尝试通过此 gem 在我的笔记模型上使用标记。但是,即使我已经明确添加(2 种不同的方式):tag_list => [] 到我的笔记控制器的强参数中,每当我尝试提交它们时,我仍然会在日志中收到未经允许的参数错误?我安装了 运行 捆绑包,并且也进行了迁移。
这是我的文件:
#/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'
我按照 gem 中的所有内容进行了操作,但仍然无法正常工作。
尝试在允许的参数列表中使用它
:tag_list => [:name, :taggings_count, :count]
我实际上是通过添加 :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
acts-as-taggable-on gem 使用多态关联。在您的情况下,作为空数组的参数无法初始化,这可能导致了问题。希望这能消除您的困惑。 :-)
当您在表单中使用 select 标签时需要 :tag_list => []
,因为提交表单时 select 标签 returns 是一个数组。
由于您使用的是文本字段而不是 select 标记,因此在提交表单时返回的不是数组而是单个值(文本字段中的字符串),因此您只需要:tag_list
在您的许可参数列表中。
我正在尝试通过此 gem 在我的笔记模型上使用标记。但是,即使我已经明确添加(2 种不同的方式):tag_list => [] 到我的笔记控制器的强参数中,每当我尝试提交它们时,我仍然会在日志中收到未经允许的参数错误?我安装了 运行 捆绑包,并且也进行了迁移。
这是我的文件:
#/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'
我按照 gem 中的所有内容进行了操作,但仍然无法正常工作。
尝试在允许的参数列表中使用它 :tag_list => [:name, :taggings_count, :count]
我实际上是通过添加 :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
acts-as-taggable-on gem 使用多态关联。在您的情况下,作为空数组的参数无法初始化,这可能导致了问题。希望这能消除您的困惑。 :-)
:tag_list => []
,因为提交表单时 select 标签 returns 是一个数组。
由于您使用的是文本字段而不是 select 标记,因此在提交表单时返回的不是数组而是单个值(文本字段中的字符串),因此您只需要:tag_list
在您的许可参数列表中。