воскресенье, 17 июля 2011 г.

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

В данном случае best practies будет отдать клиенту 404 ошибку. А
рельсы в production environment сами это сделают при возникновении
ActiveRecord::RecordNotFound. Так что просто запустите проект в
production.

15 июля 2011 г. 17:21 пользователь Alexey Poimtsev <alec@alec-c4.com> написал:
> Народ,
> подскажите пожалуйста - а какие есть 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

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "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

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

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