繁体   English   中英

使用不同的方法rails4时出错

[英]Error while using distinct method rails4

我在MySQL数据库中使用rails4。 我想获取唯一的名称,并且正在使用不同的方法。 产品模板

<%= collection_select(:metal, @product.id, @product.metal_specs.all, :id, :unique_name) %>

MetalSpec模型

def unique_name
  self.select(:name).distinct
end

但是它给了我一个错误-私有方法`select'要求MetalSpec。

请帮我解决这个问题。

您试图在模型MetalSpec上调用select,而您想在集合上调用select。

在不知道您的架构的情况下很难说出来,但是也许您需要

self.metal_specs.select(:name).distinct

在您的产品模型中

 has_many :metal_specs , -> { distinct }, through: :metals

解决了这种方式。 :)

您的代码正在实例上调用select。

另外-如果您仅列出名称,我建议您使用pluck。 由于这将返回名称列表,因此我认为该方法应为复数形式

def unique_names
  metal_specs.pluck(:name).uniq
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM