首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在has_many和HABTM关联中查找特定属性

在has_many和HABTM关联中查找特定属性
EN

Stack Overflow用户
提问于 2019-04-24 05:07:04
回答 1查看 0关注 0票数 0

我有一个名为Agents的rails模型。我的任务是按州和行业过滤代理商。端点应该是GET请求:

代码语言:javascript
复制
/api/agents?state=OH&industry=Professional%20Beer%20Taste-Tester

我已经尝试使用范围,但我似乎无法打电话给所有按州和行业过滤的代理。这是我的模型:

agent.rb

代码语言:javascript
复制
class Agent < ApplicationRecord
  has_many :licenses
  has_and_belongs_to_many :carriers

  validates :name, presence: true
  validates :phone_number, presence: true
end

attributes: name, phone_number

license.rb

代码语言:javascript
复制
class License < ApplicationRecord
  belongs_to :agent

  validates :state, presence: true
end

attributes: state

industry.rb

代码语言:javascript
复制
class Industry < ApplicationRecord
  has_and_belongs_to_many :carriers

  validates :name, presence: true
end

attributes: name

carrier.rb

代码语言:javascript
复制
class Carrier < ApplicationRecord
  has_and_belongs_to_many :industries

  validates :name, presence: true
end

attributes: name

这是我到目前为止所尝试的:

代码语言:javascript
复制
Agent.includes(:licenses).where(licenses: { state: 'OH' })

这给了我一个代理商列表,其许可证位于“OH”但我无法弄清楚如何添加AND以获得其许可证位于“OH”且其行业名称为“Professional Beer Taste-Tester”的代理商”。

EN

回答 1

Stack Overflow用户

发布于 2019-04-24 14:14:42

你的控制器在哪里......?使用HABTM,你应该使用外键来获得好的结果,就像你的模型一样

代码语言:javascript
复制
has_and_belongs_to_many :carriers, foreign_key: :industry_id

还要确保您的数据库中有列。

你的action很重要。我能看一下吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档