【问题标题】:How implement as: parameter of attr_accessible of rails 3 to rails 4如何实现:rails 3 到 rails 4 的 attr_accessible 参数
【发布时间】:2016-01-04 12:58:21
【问题描述】:

我刚刚从 rails 3 升级到 rails 4.2。到目前为止,除了attr_accessible 的问题外,一切正常。以前在 rails 3 我有一些 attr_accessible:as 参数定义如下

attr_accessible :customer_id,:country_id, :city_id, :user_id, :as => [:default, :admin]
attr_accessible :archive, :as => :admin

现在,在 rails 4 中,我可以在控制器中执行类似的操作,并根据用户是否为管理员来更新 /create。但我想知道是否有更好的方法或标准方法来做到这一点?或者这是正确的方法?

private

def products_params
  params.require(:product).permit(:customer_id,:country_id, :city_id, :user_id)
end

def products_params_admin
  params.require(:product).permit(:customer_id,:country_id, :city_id, :user_id, :archive)
end

【问题讨论】:

标签: ruby-on-rails ruby-on-rails-4 strong-parameters mass-assignment


【解决方案1】:

将此添加到您的Gemfile 以再次拥有attr_accessible

gem 'protected_attributes'

IMO 对于稳定的项目,这是合理的方式,但是强大的参数更灵活,例如使传递依赖于对象状态的属性成为可能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 2017-02-03
    相关资源
    最近更新 更多