Ruby on rails 相关产品只带来一个

Ruby on rails 相关产品只带来一个,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,我把相关的产品添加到产品中,但是只有第一个产品来了,我已经添加了其他的产品不来了 我在控制器中尝试了许多查询样式,但这是获得结果的唯一方法 Product.rb has_many :releateds, dependent: :destroy related.rb belongs_to :product 产品控制器 @product = Product.friendly.find(params[:id]) @releateds = Releated.select(:related_id).f

我把相关的产品添加到产品中,但是只有第一个产品来了,我已经添加了其他的产品不来了

我在控制器中尝试了许多查询样式,但这是获得结果的唯一方法

Product.rb

has_many :releateds, dependent: :destroy
related.rb

belongs_to :product
产品控制器

@product = Product.friendly.find(params[:id])
@releateds = Releated.select(:related_id).find_by(product_id: @product)
@productrel = Product.where(id:@releateds.related_id)
从看到这个

Releated.select(:related_id)
我怀疑你们的关系有问题, 下面的代码可以为您工作

@product.releateds
如果两个模型不同,并且没有继承其他模型,并且仍然不能使用上面的代码,那么您应该按照以下方式更改您的关系

has_many :releateds, dependent: :destroy, foreign_key: :related_id
如果仍然不起作用,请提供您的模式。

从看到此

Releated.select(:related_id)
我怀疑你们的关系有问题, 下面的代码可以为您工作

@product.releateds
如果两个模型不同,并且没有继承其他模型,并且仍然不能使用上面的代码,那么您应该按照以下方式更改您的关系

has_many :releateds, dependent: :destroy, foreign_key: :related_id

如果仍然不起作用,请提供您的模式。

如果跨类设置了多个关系,则无需显式查询ID
@product.relateds不适用于您?
find_by
返回单个对象,
其中
一个ActiveRecord关系(多个)对象(如果多个)。这是您的问题吗?如果使用where-thenıget此错误未定义方法'related_id'for#,则必须获取每个对象的related_id属性。对
related.where(product\u id:@product)使用pull(:related\u id)
。因为您只能将
@relateds
传递给
产品。where(id:…)
@product=product.friendly.find(params[:id])@relateds=related.where(product\u id:@product.pull(:related\u id)@productrel=product.where(id:@relateds)
如果跨类设置了多个关系,则无需显式查询id
@product.relateds不适用于您?
find_by
返回单个对象,
其中
一个ActiveRecord关系(多个)对象(如果多个)。这是您的问题吗?如果使用where-thenıget此错误未定义方法'related_id'for#,则必须获取每个对象的related_id属性。对
related.where(product\u id:@product)使用pull(:related\u id)
。因为您只能将
@relateds
传递给
产品。where(id:…)
<代码>@product=product.friendly.find(params[:id])@relateds=related.where(product\u id:@product)。pull(:related\u id)@productrel=product.where(id:@relateds)