rails验证特定值

nou*_*rza 4 validation ruby-on-rails inclusion

我有这个代码

我有这些选项,如果用户选择除"不列颠哥伦比亚省"之外的任何东西给他错误消息,该省必须'不列颠哥伦比亚省'

我相信它将通过使用模型验证来解决

<%= f.label :province ,"Province (required)"%><br>
    <%= f.select(:province, [["Select One", ""],'Alberta','British Columbia','Manitoba','New Brunswick','Newfoundland and Labrador','Nova Scotia','Northwest Territories','Nunavut','Ontario','Prince Edward Island','Quebec','Saskatchewan','Yukon'], {}) %>
Run Code Online (Sandbox Code Playgroud)

User.rb

  validates :province, presence: "British Columbia"
Run Code Online (Sandbox Code Playgroud)

Joh*_*ltz 6

你不应该使用存在; 这是错误的验证.你应该使用包含:

validates: province, inclusion: { in: ["British Columbia"] }
Run Code Online (Sandbox Code Playgroud)

你意识到这是一个非感性问题,对吧?如果验证只接受一个,那么在视图中提供几个备选方案有什么意义呢?

  • 重点可能是添加其他限制,例如: :create 。允许更多的更新值。 (3认同)