【问题标题】:acts_as_taggable with strong parameters in rails 4在rails 4中具有强参数的acts_as_taggable
【发布时间】:2013-10-09 22:05:38
【问题描述】:

如何在 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?

【问题讨论】:

  • 我已经维护了acts_as_taggable_on 一段时间。我不认为我会在 Rails 4 应用程序中使用它,而是自己构建功能。
  • @JoostBaaij 你能推荐一个替代品吗?
  • 在大多数情况下,我认为合适的解决方案是自己构建它。这并不难。 3.0.0.rc1 版本的acts_as_taggable_on 正在准备中,因为有人接管了 gem 的开发。

标签: ruby-on-rails ruby acts-as-taggable-on strong-parameters


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    工作代码是这样的:

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

    【讨论】:

      猜你喜欢
      • 2014-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 2013-12-08
      相关资源
      最近更新 更多