3

如何在 rails 4 中使用具有强参数的acts_as_taggable_on gem?

有:

class User < ActiveRecord::Base
  acts_as_tagger
end

class Post < ActiveRecord::Base
  acts_as_taggable
end

@post = current_user.tag(@post, :with => :tag_list)

def post_params
  params.require(:post).permit(:text, :user_id, :tag_list)
end

如何将(post_params)添加到@post?

4

2 回答 2

10

您应该像这样指定允许的参数:

def post_params
  params.require(:post).permit(:text, :user_id, { tag_list: [] })
end

这应该使他们将 tag_list 保存在您的控制器操作中。

于 2013-11-29T12:37:33.370 回答
0

提交表单时作为tag_list数组传递。因此,您应该tag_list: []在强参数定义中列入白名单。

工作代码是这样的:

def post_params
  params.
    require(:post).
    permit(:text, :user_id, tag_list: [])
end
于 2017-02-03T21:57:20.470 回答