2016-08-21 12 views
1

Rails 5.私はモデルUserを持っており、フィールド「ログイン」を義務付けたい。私が何をしたかRuby on Rails:モデルに必要なパラメータ

class User < ApplicationRecord 
    has_one :cart 

    def create 
    User.create(user_params) 
    end 

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

しかし、それは動作しません。私はログインせずに新しいユーザーを保存することができます。

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

どのように修正するのですか?

答えて

2

あなたはUserモデルに検証を追加する必要があります。

validates :login, presence: true 

コードのこの作品:

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

は、ログインフィールドは、あなたのHTMLフォームから設定することができます。

関連する問題