我目前正在使用 Rails 4 和 Devise 3.0.0。我试图在注册表单和编辑注册表单中添加一个“姓名”的自定义字段。每当我提交表单时,都会出现以下错误:
Unpermitted parameters: name
WARNING: Can't mass-assign protected attributes for User: email, password, password_confirmation.
我知道这与 Rails 4 处理参数的方式有关,但我不明白我现在应该怎么做。我四处搜索,发现我应该在涉及“参数”的用户模型中添加一些行。
我的用户模型目前看起来像这样:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, #:recoverable,
:rememberable, :trackable, :validatable
attr_accessible :name, :password, :password_confirmation, :remember_me, :email
end
根据如何在 Rails 4 中使用 attr_accessible?,我应该将以下代码添加到“控制器”中。
class PeopleController < ApplicationController
def create
Person.create(person_params)
end
private
def person_params
params.require(:person).permit(:name, :age)
end
end
什么控制器?这是文字代码吗?由于我正在与用户打交道,我必须使用 User.create(user_params) 吗?而不是 Person.create(person_params)?