代码之家  ›  专栏  ›  技术社区  ›  elasticsecurity

Rails使用主键+外键选项与关联问题

  •  0
  • elasticsecurity  · 技术社区  · 14 年前

    我想从Rails访问旧的数据库模式。我有一个表nagios_对象具有主键对象_id和一个表nagios_host_checks,它引用了列主机_对象_id的nagios_对象。因此,我定义了以下关系:

    class NagiosObject < ActiveRecord::Base
      has_one :nagios_host_check, :foreign_key => :host_object_id, :primary_key => :object_id
    end
    
    class NagiosHostCheck < ActiveRecord::Base
      belongs_to :nagios_object, :foreign_key => :host_object_id, :primary_key => :object_id
    end
    

    但是,当调用一个nagios ou object.nagios ou host ou check或一个nagios ou host ou check.nagios ou object时,我总是得到零。

    知道我的代码有什么问题吗?

    1 回复  |  直到 14 年前
        1
  •  2
  •   x0rist    14 年前

    外键和主键应该是字符串,而不是符号

    前任:

    class NagiosObject < ActiveRecord::Base
      has_one :nagios_host_check, :foreign_key => 'host_object_id', :primary_key => 'object_id'
    end
    

    http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#M001317