1

我不知道为什么我在看似非常基本的问题上找不到任何东西。说我有类似的东西

class Category < ActiveRecord::Base
  has_many :categorizations
  has_many :items, :through => :categorizations
end

class Item < ActiveRecord::Base
  has_many :categorizations
  has_many :categories, :through => :categorizations
end 

class Categorization < ActiveRecord::Base
  attr_accessible :some_field
  belongs_to :category
  belongs_to :item
end     

以及相关的迁移。然后可以做

item1=Item.new()
item2=Item.new()
foo=Category.new()
foo.items=[ item1, item2 ]

, 对?那么,如何获得将 foo 链接到 item1 和 item2 的分类以设置 :some_field 的值?

4

1 回答 1

3

如果你想添加额外的东西,你不能使用快速通道。我现在无法测试它,但是这样的东西应该可以工作:

item1 = Item.new
item2 = Item.new

foo = Category.new
foo.categorizations.build(:some_field=>'ABC', :item=>item1)
foo.categorizations.build(:some_field=>'XYZ', :item=>item2)

更新:

另外:如果您需要显示Categorization无法使用的额外数据@category.items

<h1><%= @category.name %></h1>

<% @category.categorizations.each do |categorization| %>
  <h2><%= categorization.item.name %></h2>

  <p>My extra information: <%= categorization.some_field %></p>
<% end %>
于 2012-07-25T05:41:21.483 回答