看起来没什么意义的协会

时间:2011-07-29 07:36:31

标签: ruby-on-rails-3 associations

我需要一些帮助来理解这种关联类型。

我有2个模型(item_type和item)

item_type它只是一个类别,只有一个字段(标题)

表结构:

ITEM_TYPE:

  • ID
  • 标题
  • created_at
  • 的updated_at

项:

  • ID
  • item_type_id
  • 标题
  • 其他不相关的领域..

所以,基本上我正在尝试在这些模型之间进行简单的关联。

class ItemType < ActiveRecord::Base
  belongs_to :item
end

class Item < ActiveRecord::Base
  has_one :item_type
end

我创建了一个项目并将其保存,但是当我提取它时,它应该显示item_type.title而不仅仅是item_type.id,对吗?

我已经知道belongs_to总是在包含foreign_key的表上,但在这种情况下,它对我来说没有多大意义..甚至反转关系,将has_one放在ItemType类上belongs_to到Item类,这种方式都可以。

在控制器代码中我有:

def show
  @item = Item.find(params[:id], :include => 'item_type')
end

并且可以看到视图,以查看仅使用

创建的关系
<%= debug @item %>

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我记得你需要将belongs_to放在包含外键的模型中,在你的例子中:

class ItemType < ActiveRecord::Base
    has_one :item
end

class Item < ActiveRecord::Base
    belongs_to :item_type
end

请参阅documentation