在rails中有没有办法从没有任何模型的表中检索值?我创建了一个表item_types,其中包含字段name和item_id,其中item_id是另一个表项的主键。 items表中的每个项目可以有3个或4个item_types。这里我想显示具有特定item_id的项目的相应item_types。我们在变量@ item.id中只有特定项的item_id 我试过形成一个SQL查询,但我不知道如何在没有模型的情况下实现它。此外,我不确定下面查询中的'item_id = @ item.id'部分是否正确。
select * from item_types where item_id = @item.id
答案 0 :(得分:0)
您所看到的是join_model
,可以与has_and_belongs_to_many
或has_many :through
关系一起使用
我不知道您要实现的目标,但我强烈建议您在独立模型中使用has_many :through
关联:
#app/models/type.rb
Class Type < ActiveRecord::Base
has_many :item_types
has_many :items, through: :item_types
end
#app/models/item.rb
Class Item < ActiveRecord::Base
has_many :item_types
has_many :types, through: :item_types
end
#app/models/item_type.rb
Class Type < ActiveRecord::Base
belongs_to :item
belongs_to :type
end
这样您就可以通过其他模型致电join_model
,如下所示:
@item = Item.find(params[:id])
@item.item_types #-> calls SQL "select * from item_types where item_id = @item.id"
这是执行此操作的正确Rails方法。 HABTM
不使用模型; HMT
。您应该使用@Bharat Soni's
评论&amp;生成模型使用我的代码段访问它