0 / 0 / 0
Регистрация: 29.12.2015
Сообщений: 3
|
|
1 | |
Rails. Доступ к полям связанной таблицы. Имя связанной модели и поля в переменных30.12.2015, 00:15. Показов 2903. Ответов 4
Метки нет (Все метки)
Добрый день, добрым людям!
Вероятно ответ прост, однако найти его сам оперативно не смог. Есть две модели. tickers Id Name Sector_id belongs_to :sector sectors Id name has_many :tickers Получить название сектора (sectors.name) по первой строке таблицы tickers, можно так: t = Ticker.first t.sector.name Вопрос: как получить данное значение, если и название модели 'sector' и искомого поля в ней 'name' еще не известно, а хранятся в переменных (например, model_name и field_name)? Заранее благодарен!
0
|
30.12.2015, 00:15 | |
Ответы с готовыми решениями:
4
Имя связанной таблицы Сумма значений поля связанной таблицы Занесение значения поля из связанной таблицы другому полю Как определить, что поле - внешний ключ, и узнать имя связанной с ним таблицы? |
the hardway first
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
|
|||||||||||
30.12.2015, 02:35 | 2 | ||||||||||
Voljka, надо было разместить тему в ветке Rails.
Связи можно узнать рефлексией, (на примере вашей модели, где :belong_to одна и только одна), да и метод #name еще не продумал как найти (пусть нам будет известно, что это #name), то
1
|
0 / 0 / 0
Регистрация: 29.12.2015
Сообщений: 3
|
|||||||||||||||||||||
30.12.2015, 05:58 [ТС] | 3 | ||||||||||||||||||||
Спасибо большое!
Этот способ помог. 'name' в моем примере - имя поля в таблице, а не метод (хотя я возможно не очень точно знаю определения, принятые в Ruby). сохранив в seсtor_name всю запись
Если найду ответ возможность передачи метода, отпишусь. Добавлено через 39 минут j2FunOnly, Теперь задача получить как-то модель Ticker )) Дело в том, что в метод могут передаваться записи разных моделей. В helper у меня есть только экземпляр этой модели (запись т.е.) Есть способ решения этой задачи, имея в методе только эти данные? Я решил задачу путем создания в контроллере переменной @model_class = Ticker и далее использовал Вами предложенный метод.
Добавлено через 1 час 55 минут j2FunOnly, Все оказалось намного проще. Я искал именно send. Что им подставлять - не важно В моем примере можно обойти без reflection
То же справедливо и для указание метода с помощью send.
0
|
the hardway first
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
|
|
30.12.2015, 08:07 | 4 |
Значит я не до конца понял условие
А оказывается вам всё известно. В Ruby это называется метапрограммированием. И раз уж вы не знали о Object#send, посмотрите Object#respond_to?, чтобы избежать NoMethodError. И почитайте Paolo Perrotta - Metaprogramming Ruby 2 Program Like the Ruby Pros, там много интересного.
1
|
0 / 0 / 0
Регистрация: 29.12.2015
Сообщений: 3
|
|
02.01.2016, 20:55 [ТС] | 5 |
В любом случае ответ я получил.
Да и полезно было полазить в Reflection. Я новичок в Ruby. Сейчас, чтобы изучение было изучение, ERP переписываю на Ruby. У меня беда с терминами. Я часто как Остап Бендер, который не знает, что применяет какую-то заумную "комбинацию". Оказывается то, что я использовал первый раз в FoxPro 2.0 еще в 1996, называется "метапрограммирование" ) Книгу скачал. Почитаю Cпасибо
0
|
02.01.2016, 20:55 | |
02.01.2016, 20:55 | |
Помогаю со студенческими работами здесь
5
При выборе из Ad модели выбрать по кол-ву в связанной модели ad_images Выбор в таблице данных модели ссылки на экземпляр связанной модели MVC 5. Передать название бренда связанной модели, а не идентификатор Конструирование url, ссылки в шаблоне и выборка из связанной модели Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |