【问题标题】:How to get an correspondent id through a model on rails console如何通过rails控制台上的模型获取通讯员ID
【发布时间】:2019-05-27 18:25:44
【问题描述】:

我试图得到简单的情况:

我有一个名为 Company 的模型,在 Company 内部我有公司,并且我有以下对象:“state_id”。我想找到包含一些id的相关公司。

这是我可以获得 state_id 的唯一途径。所以,我在做:

Company.all.each do |comp|
     comp.address.city.state_id
end

有效!但是当我这样做时:

Company.all.each do |comp|
     comp.address.city.state_id = 27
     #or comp.address.city.state_id(27)
end

它没有返回正确的数据

我知道这很简单,但不幸的是,我没有得到正确的输出。

非常感谢!

【问题讨论】:

    标签: ruby-on-rails ruby rails-console


    【解决方案1】:

    试试

    Company.joins(address: :city).where(cities: {state_id: 27})
    

    【讨论】:

    【解决方案2】:

    您可以使用select 方法使其工作。另外,不要混淆=== - 前者检查相等,后者分配一个值:

    needed_companies = Company.all.select do |comp|
         comp.address.city.state_id == 27
    end
    

    但这不是正确的方法,因为您将所有公司加载到内存中并对其进行过滤。更好的是使用 SQL 查询(如 Ursus 的回答)并从 DB 中只返回需要的公司

    【讨论】:

    • 是的,== & = 对我来说很有意义。非常感谢
    猜你喜欢
    • 2022-08-15
    • 2015-05-04
    • 2017-11-08
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 2013-05-02
    • 2013-03-22
    相关资源
    最近更新 更多