尝试连接两个表(具有多态关系)时,我收到以下Active Record Association错误,并在JSON API响应中包含来自两个表的所有数据:
Association named 'categories' was not found; perhaps you misspelled it?
以下是我要调用的控制器操作:
def index
@items = Item.includes(:categories)
respond_to do |format|
format.json { render :json => @items.to_json }
end
end
以下是我想加入的两个模型:
class Category < ActiveRecord::Base
attr_accessible :name
has_many :items, :as => :linkable
end
class Item < ActiveRecord::Base
attr_accessible :due_date, :linkable_id, :linkable_type, ...
belongs_to :linkable, :polymorphic => true, :counter_cache => true
end
具体来说,我想返回数据库中的每个Item及其Category。我已经尝试了所有我能想到的东西。任何帮助将不胜感激。
答案 0 :(得分:0)
你试过了吗?
def index
@items = Item.includes(:linkable).where(:linkable_type => 'Category')
respond_to do |format|
format.json { render :json => @items.to_json(include: :linkable) }
end
end
您的关联名称实际上是:可链接的Item模型,而不是:categories(特别是因为它是belongs_to所以它将是:category)。