1

Я пытаюсь создать приложение для рельсов, в котором есть два типа пользователей (игрок и админ), но разрешает только регистрацию игроков. Я не могу заставить регистрацию работать и получать ошибку «Тип не может быть пустым» при попытке вставить в базу данных.Добавить пользовательский тип в Rails Регистрация пользователя

UsersController < ApplicationController 

def new 
    @player = Player.new 
    @player.type = 'Player' 
end 

def create 
    @player = Player.new(params[:player]) 
    @player.type = 'Player' 
    if @player.save 
    redirect_to @player 
    else 
    render 'new' 
end 

My/signup позволяет пользователю отправлять e-mail и пароль. Вставки SQL работает в панели администратора и выглядит как

SQL (0.3ms) INSERT INTO "users" ("type", "email", "city", "display_name", "tags", "game_id", "affiliation", "encrypted_password", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["type", "Player"], ["email", "d"], ["city", ""], ["display_name", "d"], ["tags", ""], ["game_id", 1], ["affiliation", ""], ["encrypted_password", "$2a$10$AfuUFDjJRnoAl2fL3MGfNO9AEve.YNGNSp2SUhpfOiV6KuXuve2qC"], ["created_at", "2015-12-21 02:04:33.485089"], ["updated_at", "2015-12-21 02:04:33.485089"]] 

Так что я пытаюсь разрешить вставку только типов игроков.

Спасибо!

ответ

0
"Type can't be blank" 

Вы получаете эту ошибку, вероятно, потому, что у вас есть подтверждение в вашей Player модели, type не может быть пустым.

Чтобы решить эту проблему, удалите эту проверку, если вы планируете установить тип вручную в своем контроллере или добавьте поле типа и отправьте этот тип вместе с объектом игрока в форме игрока.

+0

Отлично! Является ли мой синтаксис правильным для добавления в поле типа? Мой SQL теперь SQL (0.3ms) INSERT INTO "users" ("email", "encrypted_password", "created_at", "updated_at") VALUES (?,?,?,?) [["Email", " «cccccc»], [«encrypted_password», «$ 2a $ 10 $ 49GeV1gRDExnrbpbG25CIOdgbHtMrrdtRYYzKRXtEW33y06VWftCa»], ["created_at", "2015-12-21 03: 12: 17.655950"], ["updated_at", "2015-12-21 03 : 12: 17.655950 "]] – 0xc0ff33

+0

Похоже, вы больше не сохраняете' type'. Можете ли вы показать свою модель и последний код контроллера? –

+0

Да, это нормально. –

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