-3

Я использую devise invitable для приглашения новых пользователей.Rails новая запись с перечислением всегда одна и та же

У меня есть модель пользователя с колонками роли для перечисления

class User < ActiveRecord::Base 
    enum role: [:client, :trainer, :admin] 

Моей новая форма пользователя имеет следующую для столбца

.form-group 
    = f.label :role, class: "col-sm-2 control-label" 
    .col-sm-10 
     = f.select :role, ['client', 'trainer', 'admin'], {},{class: "form-control"} 

роли, если я выбираю «клиент» и отправить форму Я вижу, что правильные параметры представлены "role"=>"client", но когда я проверяю базу данных, она всегда играет роль «тренер»

users_controller

def create 
     @user = User.new(user_params) 
     if User.find_by_email(@user.email).nil? 
      User.invite!(:email => @user.email) 
      redirect_to(users_path, :notice => 'User created') 
     else 
      render :action => 'new' 
     end 
     end 
def user_params 
     params.require(:user).permit(:email, :role, :name) 
    end 
+0

У вас есть роль, разрешенная для пользователя user_params? –

+0

@MarceloRisoli да, конечно ... –

+0

почему это становится downvoted? –

ответ

-1

Возможно, это потому, что вы проверяете роль на User.new.role? Вы должны проверить последний созданный Пользователь (User.last)

Смежные вопросы