我遵循http://railscasts.com/episodes/17-habtm-checkboxes-revised?view=asciicast教程,通过关系建立了一个has_many,当我试图从一个模型访问信息时,它起作用,而不是从另一个模型访问信息。
我可以通过@product.category_ids和@product.categories访问产品模型中的分类信息,但事实并非如此。我无法从分类模型访问产品信息。使用@category.product_ids或@category.products会给出错误NoMethodError: undefined method 'product_ids' for #<Category:0x007fa70d430e98>
Product.rb
class Product < ActiveRecord::Base
attr_accessible :category_ids
has_many :categorizations
has_many :categories, through: :categorizations
accepts_nested_attributes_for :categorizations, :allow_destroy => true
endCategory.rb
class Category < ActiveRecord::Base
attr_accessible :product_ids
has_many :categorizations
has_many :products, through: :categorizations
end-编辑--
Schema.rb
ActiveRecord::Schema.define(:version => 20130926192205) do
create_table "categories", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "products", :force => true do |t|
t.string "name"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "categorization", :force => true do |t|
t.integer "product_id"
t.integer "category_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "categorization", ["product_id", "category_id"], :name => "index_categorization_on_product_id_and_category_id", :unique => true
add_index "categorization", ["product_id"], :name => "index_categorization_on_product_id"
add_index "categorization", ["category_id"], :name => "index_categorization_on_category_id"
end发布于 2013-09-26 21:01:24
要从每个对象访问记录,您应该能够:
@category.products和
@product.categories这将为您提供相关的对象。
product_ids不是类别上的属性,它没有像类别模型那样的accepts_attributes_for :products,因此删除attr_accessible :product_ids应该修复错误。
https://stackoverflow.com/questions/19038049
复制相似问题