我已经升级到 Rails 4 并选择了 strong_parameters 路线。问题是它抛出了指向我用于设计的客户注册控制器的以下错误:
ActiveModel::ForbiddenAttributesError (ActiveModel::ForbiddenAttributesError):
app/controllers/users/registrations_controller.rb:89:in `build_resource'
app/controllers/users/registrations_controller.rb:6:in `create'
第 6 行是build_resource
从该create
方法中调用的,并且 build_resource 是库存标准:
def build_resource(hash=nil)
hash ||= resource_params || {}
self.resource = resource_class.new_with_session(hash, session)
end
它正在处理的模型是User
. 我尝试了 Ryan Bates 创建允许的参数类的方法:
class PermittedParams < Struct.new(:params, :current_user)
def user
params.require(:user).permit(*user_attributes)
end
def user_attributes
[:name, :username, :provider, :email, :remember_me,
:rememberable_token, :password, :password_confirmation]
end
我不确定如何在注册控制器中处理这个问题。