Rails 5.我有模型用户,我想要字段"登录"是必须的。
我做了什么:
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">
如何解决?
答案 0 :(得分:2)
您需要向User
模型添加验证:
validates :login, presence: true
这段代码:
def user_params
params.require(:user).permit(:login)
end
只允许从您的html表单设置登录字段。