Рельсы 3: перезагрузить партию с ассоциацией второго уровня - PullRequest
0 голосов
/ 26 января 2012

Моя структура приложения выглядит следующим образом:

class Study < ActiveRecord::Base
has_many :topics

class Topic < ActiveRecord::Base
has_many :references

Мне нужен доступ к ссылкам на странице показа моей модели обучения (study.topic.references).Однако мне нужно получить ссылки на основе, скажем, радиокнопки выбора тем.Поэтому, когда пользователь нажимает на тему, мне нужно получить ссылки на эту конкретную тему через AJAX.

Таким образом, я написал следующий метод в моей модели обучения:

class Study < ActiveRecord::Base

def self.topic_references(topic_id)
  Reference.where(:topic_id => topic_id)
end

Я получаю доступ к вышеописанному методу в моем контроллере исследования.Я планирую иметь удаленную форму, которая будет обращаться к вышеуказанному методу и получать соответствующие ссылки.Примерно так:

  - form_tag topic_references, :id=>"references_form", :method => 'get' do               
    = text_field_tag :topic_id, params[:topic_id], :value=>268
    = submit_tag "Get references"

В качестве начального теста я передаю значение идентификатора темы (значение 268 выше), однако @references при доступе в представлении по-прежнему пуст.Пожалуйста, помогите мне понять, что я делаю неправильно, и как я могу этого добиться?

1 Ответ

0 голосов
/ 26 января 2012

Вы не показали свой код представления, но я предполагаю, что это потому, что where возвращает коллекцию объектов, а не один объект, как обсуждалось здесь:

. Где против найти. ActiveRecord :: Relation NoMethodError

В консоли легко пропустить скобки при выводе, например [#<Reference id...], при отладке подобных проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...