我想在视图页面上一起显示Brand和Subbrand。我在尝试声明时收到错误:
class BrandsController < ApplicationController
def index
@brands = Brand.all
@subbrands = @brands.subbrands #error is coming from this line
错误:
undefined method `subbrands' for #<Array:0x9af1898>
对于我的生活,我似乎无法实现这一点!
我最初在这篇文章中发布了我的问题: Undefined method
我试图将逻辑放入控制器中,看看是否有帮助,但我仍然得到错误。模型和路由的详细信息可以在我的原始帖子中找到。
请帮忙!
答案 0 :(得分:0)
@brands
是一个数组,而不是一个ActiveRecord对象,因此您无法直接在其上调用subbrands
关联。由于您正在调用Brand.all
,并且我认为所有Subbrand
项都与Brand
相关联,因此您也可以单独查询所有Subbrand
个对象:
@brands = Brand.all
@subbrands = Subbrand.all
但是,如果您只想获得一部分品牌,那么您可以这样做。 (第二行查询subbrands
中包含brand_id
的所有@brands
。
@brands = Brand.where(...)
@subbrands = Subbrand.where(:brand_id => @brands.collect(&:id))