Ruby on rails 将文本字段限制为仅三个值

Ruby on rails 将文本字段限制为仅三个值,ruby-on-rails,Ruby On Rails,我有一个简单的应用程序,它使用一个文本字段标记来接收输入: <div><%= f.label :user %><br /> <%= f.text_field :user %></div> 我知道我可以使用选择字段限制输入: <div><%= f.label :user %><br /> <%= f.select :user, [ ['user1'], ['user2'], ['use

我有一个简单的应用程序,它使用一个文本字段标记来接收输入:

 <div><%= f.label :user %><br />
  <%= f.text_field :user %></div>

我知道我可以使用选择字段限制输入:

<div><%= f.label :user %><br />
<%= f.select :user, [ ['user1'], ['user2'], ['user3'] ] %></div>

我想知道我如何能有与上面的选择字段相同的限制,应用于上面的简单文本字段。(即user1、user2、user3仍然是唯一允许的输入,但页面上的用户不会通过选择字段看到user1、user2、user3)

编辑* 我正在寻找一个简单的验证方案

您可以使用:

classyourmodel
您可以使用:

classyourmodel
您的意思是在Rails应用程序中添加只允许这些值的验证,还是通过JavaScript客户端检查来强制验证?验证是一种方式,但我并不反对另一种方式。我觉得这里没有足够的信息来给您一个好的答案。在控制器中的过滤器之前,有多种可能的解决方案——模型验证、数据库级约束(假设您正在提交持久化数据模型的属性值)。如果没有更多的信息,很难说哪一个适合你的情况。我的意思是,这些想法中的任何一个都是很好的解决方案,我会接受,但最基本的解决方案是我一直在寻找的。也就是说,如果您只是输入了错误的字符串,那么就会出现错误。您是想在Rails应用程序中添加一个只允许这些值的验证,还是要通过JavaScript客户端检查来强制执行?验证是一种,但我并不反对另一种方式。我觉得这里没有足够的信息来给您一个好的答案。在控制器中的过滤器之前,有多种可能的解决方案——模型验证、数据库级约束(假设您正在提交持久化数据模型的属性值)。如果没有更多的信息,很难说哪一个适合你的情况。我的意思是,这些想法中的任何一个都是很好的解决方案,我会接受,但最基本的解决方案是我一直在寻找的。也就是说,如果您只是输入了错误的字符串,则会出现错误。
class YourModel < ActiveRecord::Base
  validates :user, inclusion: { in: ['user1', 'user2', 'user3'],
    message: "%{value} is not a valid user" }
end