我有两种模式:
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”
答案 0 :(得分:1)
我从你的描述中假设了以下内容。
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])
答案 1 :(得分:0)
您的property_types表上似乎缺少该列。您是否在创建模型后编写/运行迁移脚本?模型不知道任何内容或控制数据库中的任何内容,包括其模式。
ruby script/generate model
会自动为您创建基本迁移,但您可能需要将其充实并使用rake db:migrate