![](/img/trans.png)
[英]How do I authenticate a user if they are not using my web (rails) application, e.g. using an API
[英]Using Rails validations, how do I whitelist a phrase, e.g., “Learn Ruby”
我有validates_presence_of :subject, inclusion: { in: %w( 'Learn Ruby' 'Learn Ruby on Rails'), message: "Please select a valid Subject" }
学习Ruby和Learn Ruby on Rails就是我的例子试图做。
我尝试使用单引号和双引号没有成功。
我还尝试了一个数组: validates_presence_of :subject, inclusion: { in: ['Learn Ruby', 'Learn Ruby on Rails'], message: "Please select a valid Subject" }
但没有成功。
我熟悉短语宝石 ; 但是,安装它似乎过于矫kill过正。 (而且,如果没有尝试过,我不确定这里是否会有所帮助。)
看起来您正在将旧的validates_x_y
类型的方法与Rails 3.x validates
混合使用,这更加通用。
validates_presence_of
来自Rails 1.x时代, 只能处理某些事物。 有validates_inclusion_of
作为对应对象,但真正的答案是使用validates
调用,该调用可以配置为一次测试任意数量的事物。
表示为:
validates :subject,
inclusion: {
in: [
'Learn Ruby',
'Learn Ruby on Rails'
],
message: "Please select a valid Subject"
}
我还添加了一些格式,以使发生的事情更加清晰。 那些单调的人可能真的很纠结。
如果您的介绍使用的是那些老式的validates_presence_of
方法,那么它已经过时了,您应该寻找更新的版本或更好的参考。 注意,正式的Rails文档通常是一个很好的起点。
ActiveModel validates_inclusion_of
怎么样?
validates_inclusion_of :subject, in: ['Learn Ruby', 'Learn Ruby on Rails'], message: 'Please select a valid Subject'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.