Rails - проблема с HABTM - PullRequest
       1

Rails - проблема с HABTM

0 голосов
/ 28 июля 2010

У меня две модели:

ItemType и PropertyType, они связаны с отношением HABTM.

Но этот код не работает:

PropertyType.find(:all, :conditions => ["item_type_id != ?", existing_type_id])

У меняошибка:

Mysql::Error: Unknown column 'item_type_id' in 'where clause': SELECT * FROM `property_types` WHERE (item_type_id != '3')

Как это решить?Я хочу найти все PropertyTypes, где item_type_id! = "Some_id"

Ответы [ 2 ]

1 голос
/ 28 июля 2010

Я предположил следующее из вашего описания.

class ItemType
  has_and_belongs_to_many :property_types
end

class PropertyType
  has_and_belongs_to_many :item_types
end

create_table :item_types_property_types, :id => false do |t|
  t.references :item_type, :property_type
end

тогда ваш запрос будет выглядеть так:

PropertyType.find(:all, :include => :item_types, :conditions => ["item_types_property_types.item_type_id != ?", existing_type_id])
0 голосов
/ 28 июля 2010

Похоже, вам не хватает этого столбца в таблице property_types. Вы писали / запускали сценарии миграции после создания моделей? Модели ничего не знают или ничего не контролируют в базе данных, включая ее схему.

ruby script/generate model автоматически создаст для вас базовую миграцию, но вам, вероятно, понадобится конкретизировать ее и запустить с rake db:migrate

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