rails 3 - если поле формы пустое, вместо этого укажите значение - PullRequest
2 голосов
/ 24 мая 2011

В моем приложении на Rails 3 есть модель Post.

Пользователи могут создавать свои собственные URL для этих сообщений.(Я называю это clean_url.)

Если пользователь не заполняет это поле, я хочу создать значение из заголовка при сохранении формы.(По существу используйте @ post.title.to_s (некоторые reg ex для удаления пробелов и т. Д.) *

Каков наилучший подход к сохранению элемента со значением заголовка в этом поле, если он оставлен пустым?

Я предполагал, что в контроллере постов создаю действие, которое я мог бы "обновить_аттрибутами" поста при сохранении ... но я начинаю думать, что это не так?

У кого-нибудь есть идеи о том, как этого добитьсяэто?

1 Ответ

2 голосов
/ 24 мая 2011

Используйте before_save обратный вызов и частный метод в вашей модели. Следующее взято прямо из моего блога.

before_save :create_clean_url

private

def create_clean_url
  if self.clean_url.blank?
    # Remove non-alpha characters. Replace spaces with hyphens.
    self.clean_url = self.title.downcase.gsub(/[^(a-z0-9)^\s]/, '').gsub(/\s/, '-')
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...