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

Ruby On Rails in UA/Вопросы по программированию на ROR/Наследование методов

2008-06-09 19:24:32 Ответить  
Junior
Junior
Адрес: Odessa
Сообщений: 76
Регистр: 2007-07-25
его блог 0 сообщ.
Наследование методов
Добрый день, у меня наверное "ламерский" вопрос, но все таки.
Рельсовый проект, есть две модели


Никак не могу добиться что бы метод some_action был доступен объектам класса First. Может кто подскажет как решить эту проблему.
2008-06-08 16:45:34 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 978
Регистр: 2007-03-13
его блог 28 сообщ.
RE: Наследование методов
сделай метод обекта класа
2008-06-09 07:20:44 Ответить  
romb
Roman V. Babenko
Адрес: Kyiv
Сообщений: 128
Регистр: 2008-04-22
его блог 5 сообщ.
RE: Наследование методов
Хм... у меня тоже ламерский вопрос: а зачем так делать вообще ? Я даже не представляю когда это может понадобиться, чтобы две несязанных модели вызывали методы друг-другжки как свои собственные :-)
2008-06-07 11:52:27 Ответить  
Junior
Junior
Адрес: Odessa
Сообщений: 76
Регистр: 2007-07-25
его блог 0 сообщ.
RE: Наследование методов
А ситуация такая.
Есть некие методы которые расчитывают параметры зарегеных пользователей. Соответсвенно для них есть своя таблица в БД.
Так же можно расчитать часть параметров, для незарегеных пользователей. Для них отдельная таблица.
Соответсвенно, когда делаю объект "незарегенного пользователя", хотелось бы использовать уже существующие методы класса "зарегеный пользователь".
2008-06-08 15:54:51 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 978
Регистр: 2007-03-13
его блог 28 сообщ.
RE: Наследование методов
мне кажется ты не правильно решаешь задачу
навернео это можно сделать через attr_acc атибут аксесор
2008-06-06 03:01:41 Ответить  
Junior
Junior
Адрес: Odessa
Сообщений: 76
Регистр: 2007-07-25
его блог 0 сообщ.
RE: Наследование методов
Чуть подробней опишу задачу, может я действительно не в том направлении пошел.
Есть две разные таблицы, допустим User Preuser, соотвествено есть две модели и некий контроллер.



Я не совсем понимаю как это реализовать с помощью attr_accessor. И как идеологически правильно построить взаимодействие.
2008-06-08 10:16:50 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 978
Регистр: 2007-03-13
его блог 28 сообщ.
RE: RE: Наследование методов
думаю тебе надо сделать файл модуля положить его в папку lib
и проинклудить его в тех моделях где надо получить доступ к методам и все
таким образом ты сможешь зашарить все методы в любых моделях
2008-06-09 23:51:31 Ответить  
Junior
Junior
Адрес: Odessa
Сообщений: 76
Регистр: 2007-07-25
его блог 0 сообщ.
RE: Наследование методов
Спасибо большое за совет.
2008-06-09 07:58:58 Ответить  
romb
Roman V. Babenko
Адрес: Kyiv
Сообщений: 128
Регистр: 2008-04-22
его блог 5 сообщ.
RE: RE: Наследование методов
Вообщето можно решить такой вопрос наследованием. User: RegisterUser и Anonimus.
Но можно и композицей как уже сказал Руслан. Тоесть через подмешивание необходимой функциональности из модуля. Если различие между зарегенными пользователями и анонимусами незначительные то подходит первый вариант, а иначе второй. Наследование желательно использоватья в случаях когда можно сказать, что производная сущность _являеться_ родительской. В случае если более уместна ситуация: _ведет себя как_ то используется композиция. По сути подмешивание выполняет роль есть интерфейса для создание горизонтальных связей в системе.
2008-06-08 09:54:31 Ответить  
Junior
Junior
Адрес: Odessa
Сообщений: 76
Регистр: 2007-07-25
его блог 0 сообщ.
RE: Наследование методов
Я воспользовался советом Руслана. При наследовании у меня возникли проблемы с самими объектами.
2008-06-08 23:55:44 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 978
Регистр: 2007-03-13
его блог 28 сообщ.
RE: RE: Наследование методов
так что у тебя за проблемы возникли ???

приведи код своего модуля
2008-06-09 01:59:03 Ответить  
Junior
Junior
Адрес: Odessa
Сообщений: 76
Регистр: 2007-07-25
его блог 0 сообщ.
RE: Наследование методов
Сейчас проблем нет, ты посоветовал как раз то что мне надо было. А когда я использовал наследование, делал примерно так:



у меня сразу вознили конфликты в валидацией, у объекта First проверялись все поля Second, а они присутсвовали не все в данном объекте. Пришлось отказаться от наследования.
Реклама: парфюмерия, французские духи www.Parfum-plaza.Ru платная трансфер в аэропорт на концерт
Ключевые слова:
Гости: 70 Онлайн: 0
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008