Проверка символов Ruby on Rails - PullRequest
       9

Проверка символов Ruby on Rails

1 голос
/ 22 сентября 2009

У меня есть эта модель:

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

Ответы [ 2 ]

7 голосов
/ 22 сентября 2009

Если вы добавите validates_format_of , вы можете указать регулярное выражение для проверки ссылки.

class Story < ActiveRecord::Base
    validates_presence_of :name , :link
    validates_format_of :link, :with => /^http.*$/
end
1 голос
/ 22 сентября 2009

... в: символе ссылки. Я не могу сделать: link.include? потому что: ссылка является символом.

Просто, чтобы было ясно, обратите внимание, что :link (как символ) - это просто способ передать имя метода link, в этом случае сообщая валидации, какие методы должны работать на. Если вы хотите получить значение, возвращаемое link (которое предположительно будет атрибутом ссылки объекта), вы должны вызвать link как обычный метод. Тем не менее, для подтверждения, Питер ответит то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...