我有一个模型Persons::Names::Log
和另一个模型Persons::Address
。我想在Log
和Address
之间创建关联。可能吗?我应该在两个模型文件中写什么语句?
Edit
:
我希望有一个像Persons::Names::Log.last.address
答案 0 :(得分:1)
来自http://guides.rubyonrails.org/association_basics.html#controlling-association-scope:
要将模型与不同命名空间中的模型相关联,您必须这样做 在关联声明中指定完整的类名。
以下是与给定类名称关联的示例:
module Persons
module Names
class Log
has_one :address, class_name: "Persons::Address"
end
end
class Address
belongs_to :log, class_name: "Persons::Names::Log"
end
end
答案 1 :(得分:1)
使用范围指定类名:
# app/persons/names/log.rb
module Persons
module Names
class Log < ActiveRecord::Base
has_one :address, class_name: "Persons::Address"
end
end
end
# app/persons/address.rb
module Persons
class Address < ActiveRecord::Base
belongs_to :log, class_name: "Persons::Names::Log"
end
end