我正在尝试使用自定义字段创建新用户。 我创建了一个迁移并成功将新字段添加到数据库表中。
add_column :users, :status, :string
在我看来
<%= form_for @user do |f| %>
<div class="form-group">
<label for="status">Status:</label>
<%= f.collection_select :status, {'1' => :Live, '2' => :Restricted }, :first, :last, {prompt: "Status"}, {class: "form-control"}%>
</div>
在我的控制器上
def user_params
params.require(:user).permit(:email, :status)
端
当我尝试保存新用户时,我收到以下错误消息。
:status=>["is not included in the list"]
答案 0 :(得分:0)
您必须为sign_up
中的sign_in
,account_update
和application_controller
设计操作配置允许的参数。像这样:
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :status
devise_parameter_sanitizer.for(:sign_in) << :status
devise_parameter_sanitizer.for(:account_update) << :status
end
end
See this以供参考,并提供更多相关信息。
此外,您需要遵守status
模型User
字段的验证。