Ruby on Rails:模型所需的参数

时间:2016-08-21 11:45:03

标签: ruby-on-rails ruby

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

如何解决?

1 个答案:

答案 0 :(得分:2)

您需要向User模型添加验证:

validates :login, presence: true

这段代码:

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

只允许从您的html表单设置登录字段。