2016-02-11 2 views
0

Я установил приложение rails, которое использует devise в качестве подлинного жемчужина. Тем не менее, я хотел, чтобы пользователь выбирал случайное имя пользователя и не привязывался к тому, чтобы делиться своим письмом со мной. Я следовал инструкциям here. Однако проблема заключается в том, что всякий раз, когда я пытаюсь зарегистрироваться с использованием имени пользователя (с пустой пользовательской базой данных), форма показывает ошибку username is invalid. Для справки вот валидация, что я стереосистема и обновите:Проблемы с регистрацией имени пользователя с помощью Devise

devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 
    validates :username, :uniqueness =>{ 
       :case_sensitive => false 
      }, presence: true 

Я не знаю, как обойти эту проблему. Любая помощь будет действительно приятной.

Edit: Для того, чтобы дать более полное представление о ситуации, вот лог-сервер при регистрации:

Started POST "/users" for ::1 at 2016-02-11 14:29:55 +0530 

Processing by Devise::RegistrationsController#create as HTML 
    Parameters: {"utf8"=>"✓", "authenticity_token"=>"mM1N0AgxfoqXz4448EgHoSYz03Hdr3nX/WH1f+siRP/26VNWz4VS5lJ2I4NJjXcucgWxFvgIyON+7zwFXAESgw==", "user"=>{"username"=>"ankit0912", "email"=>"", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"} 
    (0.1ms) begin transaction 
    User Exists (0.2ms) SELECT 1 AS one FROM "users" WHERE LOWER("users"."username") = LOWER('ankit0912') LIMIT 1 
    (0.1ms) rollback transaction 

Спасибо.

Edit2: Users_Controller код

class UsersController < ApplicationController 
    def index 
    @users = User.order(:karma :desc).limit(25) 
    end 

    def show 
    @user = User.find(params[:id]) 
    end 

    def update 
    @user = User.find(params[:id]) 
    @user = @user.update(user_params) 
    if @user.save 
     flash[:notice] = "Record Updated" 
    else 
     redirect_to :action => "show", :id => @user.id 
    end 
    end 

    private 
    def user_params 
    params.require(:user).permit(:email) 
    end 
end 
+0

вы можете дать нам часть контроллера? – Minato

+0

@Minato: [здесь] (http://pastebin.com/QLq1dXku). Это контроллер, который я написал, часть auth обрабатывается приложением, к которому у меня нет доступа. –

+0

Pastebin не работает для меня ... пожалуйста, напишите здесь ... – Minato

ответ

0

Проверка в порядке в соответствии с рельсов руководства. Пожалуйста, проверьте, идет ли имя пользователя param, к контроллеру. Если параметр пуст, проверка подлинности присутствия не выполняется и может дать эту ошибку.

Также см ли подкорректированных атрибуты правильно определены в контроллере приложения для пользователя. (Завещание)

+0

Я только что проверил, что вы сказали, но безрезультатно. Ошибка все еще сохраняется. Ошибка связана не с проверкой присутствия, а с проверкой имени пользователя. –