У меня есть 2 модели:Рубин на Rails, модель присоединяется
class Video < ActiveRecord::Base
belongs_to :categories, :foreign_key => "category", :class_name => "Category"
end
class Category < ActiveRecord::Base
has_many :videos
end
Это прекрасно до сих пор, в моем контроллере видео для индексной страницы У меня есть:
def index
@videos = Video.all(:joins => :categories)
etc, etc
end
выше производит следующее SQL-запрос: SELECT * FROM videos
videos
INNER JOIN categories
categories
НА .id = videos
.category
ИБК. ch в порядке до определенной точки, в основном мне нужно получить название категории (поле в этой таблице), так что мне не нужно делать другой вызов в представлении, чтобы получить имя категории на основе идентификатора категории. Есть идеи?
Спасибо, и да, я новичок в рубине, я пробовал читать API, но не мог найти там большой помощи.
Когда я делаю, изменения запроса к: SELECT * FROM 'videos' Нет соединения или ничего, что на самом деле, как я его раньше, и он никогда не работал ... :( –
См. Мой отредактированный ответ. –
Спасибо, John, причина, почему у меня есть: class_name и переименована в категорию: потому что, если я этого не сделаю, когда я прав, я получаю следующую ошибку: ActiveRecord :: AssociationTypeMismatch в VideoController # update Категория (# 2175068700) ожидается, полученная строка (# 2148246520) Единственный способ Я обнаружил, что обойти это было, выполняя вышеуказанное ... Я думаю, что у меня слишком большой беспорядок на руках. –