Есть ли лучший способ написать метод find_messages_by_slug_or_404? - PullRequest
1 голос
/ 21 марта 2010

В моем messages_controller у меня есть следующий частный метод:

def find_message_or_404(slug)
  message = user.messages.find_by_slug(slug)
  if message.nil?
    raise Error404
  end
  message
end

Я считаю это не элегантным и не очень Rubist.Есть ли способ улучшить это?

Ответы [ 2 ]

3 голосов
/ 21 марта 2010

Если все, что вам нужно, это сократить код, чтобы он был более похож на Ruby, как насчет:

def find_message_or_404(slug)
  user.messages.find_by_slug(slug) || raise Error404
end

Не ноль find_by_slug вернет сообщение, в противном случае оно ответвляется к оператору raise.

2 голосов
/ 21 марта 2010

Лично я не думаю, что что-то не так с тобой (мудрый стиль кодирования), но, возможно, тебе это нравится больше:

def find_message_or_404(slug)
  user.messages.find_by_slug(slug) or raise Error404
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...