пятница, 15 июля 2011 г.

inherited_resources и не найденный parent при использовании субдоменов

Народ,
подскажите пожалуйста - а какие есть best practices при использовании
inherited_resources, чтобы корректно обрабатывать такую ситуацию, что
parent не найден?

Например есть team has_many projects. В раутах имею

resources :teams, :except => [:show]

constraints(Subdomain) do
match '/' => 'teams#show'
end

resources :projects do
resources :tickets
end

Проекты вынесены на верхний уровень, чтобы избежать большой глубины
url. В проджект контроллере имею

def begin_of_association_chain
Team.find_by_subdomain!(request.subdomain)
end

и в случае, если я вызываю projects_path при условии не-нахождения на
саб-домене team-а, что вполне ожидаемо имею

ActiveRecord::RecordNotFound in ProjectsController#index
Couldn't find Team with subdomain =

Я конечно понимаю, что можно приткнуть в контроллер что-то типа

def rescue_action(exception)
case exception
when ActiveRecord::RecordNotFound
return redirect_to teams_path, :status => :moved_permanently
end

super
end

но есть у меня сомнения, что это rails way и это правильно с точки
зрения использования inherited_resources.

А как бы вы сделали?

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий