我正在尝试链接SHA1上的两个表,而不是跨表执行SHA1的查找,并链接via id。
我的模特
class Dataset < ActiveRecord::Base belongs_to :dataset_hash end class DatasetHash < ActiveRecord::Base has_many :datasets end
我尝试使用
进行链接has_many :datasets, :finder_sql => 'Select datasets.* FROM datasets LEFT JOIN dataset_hashes ON datasets.dataset_hash=dataset_hashes.hash WHERE dataset_hashes.hash=#{dataset.dataset_hash}'
但是我得到错误
DatasetHash(#...)期望,得到字符串(#...)
答案 0 :(得分:2)
您可以使用belongs_to和has_many中提供的:foreign_key
和:primary_key
:
class Dataset < ActiveRecord::Base
belongs_to :dataset_hash, :primary_key => "dataset_hash", :foreign_key => "hash"
end
class DatasetHash < ActiveRecord::Base
has_many :datasets, :primary_key => "hash", :foreign_key => "dataset_hash"
end