Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Список джемов Rails проекты      Поиск   

Ruby On Rails in UA/Программирование на ROR/Как получить название контролера по модели?

2008-07-24 03:55:25 Ответить  
malphunction
malphunction
Адрес:
Сообщений: 3
Регистр: 2008-07-11
его блог 0 сообщ.
Как получить название контролера по модели?
  •  
У меня в коде есть объекты-заявки, производные от модели Request: например, ReqeustAaa, RequestBbb и т.д. Если пользователь подтверждает заявку, она преобразуется в соответствующий объект: Aaa, Bbb и т.д. (производный от Entity). Нужно после подтверждения перейти к просмотру созданного объекта. Для этого есть такой код:


Для каждого из объектов Aaa, Bbb и т.д. есть свой контролер; так вот, как правильно сформировать request_to ? Пока придумал только такое извращение:


Но как-то уж очень по-уродски... Подскажите, как правильно.
, , ,
2008-07-24 09:14:02 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 1294
Регистр: 2007-03-13
его блог 40 сообщ.
RE: Как получить название контролера по модели?
  •  
А не проще сделать в каждой модели метод который будет возвращать контролер который работает с этой моделью и тогда в роутаз не надо ничего мудрить.

Не хочешь метод сделай attr_reader
------------
Занимаюсь вебом и продвижением сайтов.
2008-07-24 10:56:35 Ответить  
malphunction
malphunction
Адрес:
Сообщений: 3
Регистр: 2008-07-11
его блог 0 сообщ.
RE: RE: Как получить название контролера по модели?
  •  
Ну, можно и так, однако:
1. Где-то в недрах RoR эта информация вроде бы заложена (в routs??)
2. Ну и идеологические причины ;-) : модель не должна знать про контролер; для каждой новой модели нужно прописывать эти attr_reader -- а это нарушение DRY...

Наверное, сделаю что-то типа метода correspond_controller(modelObject), в который и засуну это.

А про "мудрение в routs" -- что, обычно такие проблемы вот так и решаются, через routs?
2008-07-24 11:00:27 Ответить  
malphunction
malphunction
Адрес:
Сообщений: 3
Регистр: 2008-07-11
его блог 0 сообщ.
RE: RE: RE: Как получить название контролера по модели?
  •  
Например, url_for(@some_object) -- оно ж как-то догадывается, как по объекту ссылку на контролер сделать. (Да, я уже посмотрел код url_for, вроде не подходит :( )
2008-07-24 12:43:05 Ответить  
romb
Roman V. Babenko
Адрес: Kyiv
Сообщений: 310
Регистр: 2008-04-22
его блог 6 сообщ.
RE: Как получить название контролера по модели?
  •  


Request.controller_name

>> requests

наследники будут давать свое имя класса... DRY
------------
http://romanvbabenko.blogspot.com Если в споре не родилась истина, то, по крайней мере, один из спорящих бесплоден.
Назадназад Новыйновый Ответитьответить
Ключевые слова:
Гости: 168 Онлайн: 0
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008