如何实现为:rails 3到rails 4的attr_accessible参数



我刚刚从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中,我可以在控制器中执行类似的操作,并根据用户是否为admin进行更新/创建。但我想知道是否有更好的方法或标准的方法来做到这一点?或者这是正确的方式?

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

将其添加到您的Gemfile以再次获得attr_accessible

gem 'protected_attributes'

IMO对于稳定的项目来说,这是一种合理的方式,但强参数更灵活,例如,可以根据对象状态传递属性。

相关内容

  • 没有找到相关文章

最新更新