我使用的是设计3的候选版本,这样我就可以在Rails 4中使用它。在Rails 3.2中,我曾经能够通过简单地将该字段添加到registration/edit.html中来为我的User
模型添加自定义字段。动词和注册/new.html。Erb文件(在运行适当的迁移之后)。然后我只需将该字段添加到模型中字段的attr_accessible
列表中。
然而,在Rails 4中,没有attr_accessible
列表,我不能简单地在视图中添加字段。如何添加自定义User字段?
添加
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:username, :email) }
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:username, :email, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:username, :email, :password, :password_confirmation, :current_password) }
end
我被告知要查看github页面上的主要README,它就在那里。容易。
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :username
end
end
如果您希望允许使用其他参数,您可以在
中使用一个简单的before过滤器。程序控制器:
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :username
end
end
您需要为设计启用强参数而不是attr_accessible为此您需要创建新的初始化器,如:
DeviseController.class_eval do
def resource_params
unless params[resource_name].blank?
params.require(resource_name).permit(:email, :password, :password_confirmation, :remember_me)
end
end
end
确保你从rails4分支(platformatec/design)克隆了gem。从模型中删除attr_accessible