Rails добавляет значение к переменной экземпляра - PullRequest
0 голосов
/ 28 сентября 2011

Я чрезвычайно новичок в RoR и испытываю трудности в своем обучении. Я создал эшафот для таблицы БД исполнителей, в которой внешний ключ привязан к таблице жанров в качестве таблицы поиска для жанров исполнителей.

То, что я пытаюсь сделать, это использовать genre_id из текущей строки исполнителя в находке против таблицы жанров для извлечения названия жанра. У меня все работает как нужно в действии со списком, за исключением того, что я не могу понять, как добавить "genre_name" => @genre [: genre_name] в переменную экземпляра @performers, чтобы она распространялась в представление.

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

  def list
    @performer_pages, @performers = paginate :performers, :per_page => 10
    @performers.each do |performer|
      #logger.debug(performer[:genre_id])
      @genre = Genre.find(performer[:genre_id], :select => 'genre_name')

      @performers[performer[:id]][:genre_name] = @genre[:genre_name]
      ^-- THIS IS THE LINE I AM STUCK ON
    end

    logger.debug(@performers.inspect)
  end

Спасибо

1 Ответ

1 голос
/ 28 сентября 2011

Вы должны использовать ассоциации, они сделают это очень легко.

В вашей модели Performer у вас должна быть строка belongs_to :genre.

В вашей модели жанра у вас должна быть строка has_many :performers.

Теперь в вашем коде вы можете получить доступ к названию жанра с помощью этого: (при условии, что у вас уже есть @performer)

@performer.genre.genre_name

Надеюсь, это поможет вам встать на правильный путь!

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