【问题标题】:Rails: Use of 'foreign_key'Rails:使用'foreign_key'
【发布时间】:2014-12-24 03:41:02
【问题描述】:

我有一个 City 模型和 Cities 表。服务模型和服务表。 一个服务有一个城市(起源城市和命运城市)。一个城市“有很多”服务。 在 services 表中,它有两列关于城市:origin_city_id 和 fatal_city_id。但只有一个模型和一个关于城市的表格。

如何在这两个表/模型之间建立关系?

当管理员创建服务时,我想在输入表单中使用这两个字段(起点和终点城市)

开始的代码:

  • 城市模型:has_many :service

  • 服务模型:belongs_to :city

【问题讨论】:

    标签: mysql ruby-on-rails


    【解决方案1】:

    您需要按以下方式设置模型

    class City < ActiveRecord::Base
      has_many :origin_services, class_name: 'Service', foreign_key: :origin_city_id
      has_many :destination_services, class_name: 'Service', foreign_key: :destiny_city_id
    end
    
    class Service < ActiveRecord::Base
      belongs_to :origin_city, class_name: 'City'
      belongs_to :destiny_city, class_name: 'City'
    end
    

    【讨论】:

    • 我需要使用 :origin_services 还是只使用 :service 在 'has_many' 中?
    • 如果您只想要City 上的单个has_many 关联,则根据您使用的Rails 版本,您应该能够执行has_many :services, -&gt; (city){ where("services.origin_city_id=? OR services.destiny_city_id=?", city.id, city.id) }
    猜你喜欢
    • 1970-01-01
    • 2015-03-27
    • 2017-01-23
    • 1970-01-01
    • 2023-02-23
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多