我有这个型号:
class Story < ActiveRecord::Base
validates_presence_of :name , :link
end
对表单进行验证的地方。但我还要验证字符串“http”是否包含在:link符号中。我不能这样做:link.include?因为:链接是符号。我该怎么做?
我的观点是:
<% form_for :story do |f| %>
<p>
name:<br />
<%=f.text_field :name %>
</p>
<p>
link:<br />
<%= f.text_field :link %>
</p>
<p>
<%= submit_tag :"submit this story" %>
</p>
<% end %>
答案 0 :(得分:7)
如果您添加validates_format_of,则可以提供正则表达式来测试链接。
class Story < ActiveRecord::Base
validates_presence_of :name , :link
validates_format_of :link, :with => /^http.*$/
end
答案 1 :(得分:1)
...在:链接符号中。我不能这样做:link.include?因为:链接是符号。
就是这么清楚,请注意:link
(作为符号)只是传递link
方法的名称的一种方法,在这种情况下告诉验证应该采用哪些方法。如果您想要link
返回的值(可能是对象的链接属性),您可以将link
称为常规方法。但是,对于验证,彼得的答案就是你想要的。