我的 rails 应用程序中有 2 个模型,一个带有 UUID 主键:
class User < ActiveRecord::Base
belongs_to :country, :foreign_key => 'country_uuid'
end
class Country < ActiveRecord::Base
set_primary_key :uuid
has_many :users
end
当我尝试这样的事情时:
<% @user = User.find :first, :include => [:country] %>
<%= @user.country.name %>
我得到了很好的结果,但我在日志文件中看到了 2 个请求。当我们更改 UUID 键的 ID 键时,为什么急切加载不起作用?
User Load (0.4ms) SELECT `users`.* FROM `users` LIMIT 1
Country Load (0.4ms) SELECT `countries`.* FROM `countries` WHERE (`countries`.`uuid` = '1')
我会有类似的东西:
User Load (0.4ms) SELECT `users`.* FROM `users` INNER JOIN countries ON countries.uuid = users.country_uuid LIMIT 1
有解决方法吗?如果我将 uuid 键更改为 id 键,但保留字符串格式来存储 uuid,可以吗?
谢谢,