在我的Ruby on Rails应用程序中,我在我的数据库中创建了一个连接表来链接客户和企业。现在我试图根据连接表中的信息(称为"冲突")来查找其中一个模型的信息:
@customer = Customer.where(customer_id:1).conflict(s)或 @customer = Customer.find(1).conflict(s)
我想查找与给定"冲突"直接关联的客户(或业务)的信息,并将其打印到浏览器视图。
我现在得到的错误: 未定义的方法`冲突'对于#
答案 0 :(得分:0)
要通过客户发生冲突,您应该在客户模型(customer.rb)中具有以下关联,
has_one:冲突 要么 has_many:冲突
答案 1 :(得分:0)
根据提供的说明,您创建了一个连接表,其中包含客户和企业的参考。
您提供的错误,似乎您忘记将它们关联到您的模型中。
customer.rb
class Conflict < ApplicationRecord
has_many :customer_conflicts
has_many :customers, through: :customer_conflicts
end
conflict.rb
class CustomerConflict < ApplicationRecord
belongs_to :customer
belongs_to :conflict
end
customer_conflict.rb
@customer = Customer.where(customer_id: 1).conflicts
@customer = Customer.find(1).conflicts
现在运行下面提到的查询将起作用:
{
Name: "Automotive"
RefCategory: 1,
ChildCategories:[{
Name: "Car"
RefCategory: 2,
ChildCategories: []
},{
Name: "Motorcycle"
RefCategory: 3,
ChildCategories: []
}]
}