在设计用户模型上添加额外字段

时间:2015-11-18 17:43:03

标签: ruby-on-rails devise

我正在尝试使用自定义字段创建新用户。 我创建了一个迁移并成功将新字段添加到数据库表中。

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"]

1 个答案:

答案 0 :(得分:0)

您必须为sign_up中的sign_inaccount_updateapplication_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字段的验证。