2016-08-21 4 views
1

Rails 5. Ich habe Modell Benutzer und ich möchte Feld "Login" obligatorisch sein.Ruby on Rails: erforderliche Parameter für Modell

Was ich tat:

class User < ApplicationRecord 
    has_one :cart 

    def create 
    User.create(user_params) 
    end 

    private 
    def user_params 
    params.require(:user).permit(:login) 
    end 
end 

Aber es funktioniert nicht. Ich kann neue Benutzer ohne Anmeldung speichern.

irb(main):001:0> user2 = User.create 

begin transaction 

SQL (1.5ms) INSERT INTO "users" ("created_at", "updated_at") VALUES (?, ?) [["created_at", 2016-08-21 11:38:17 UTC], ["updated_at", 2016-08-21 11:38:17 UTC]] 

commit transaction 

=> #<User id: 4, login: nil, created_at: "2016-08-21 11:38:17", updated_at: "2016-08-21 11:38:17"> 

Wie es zu beheben?

Antwort

2

Sie müssen Validierung User Modell hinzuzufügen:

validates :login, presence: true 

Dieses Stück Code:

def user_params 
    params.require(:user).permit(:login) 
end 

erlaubt nur Login-Feld von Ihrem HTML-Formular festgelegt werden.