model 里边的 has_many 和 belongs_to 在表都是用 model_id 的时候,容易理解。我想研究一下用 foreign_key 的方法,这两个表,都不使用 id 作为 primary key,这个时候,我的头脑就一团糊涂了。不知道怎么写 model。下面的例子,我故意不用 id。
有两个表,authors(aid, aname)
和papers(pid, a_id, pname)
class Paper < ActiveRecord::Base
self.primary_key = 'pid'
belongs_to :author
end
class Author < ActiveRecord::Base
self.primary_key = 'aid'
has_many :papers, foreign_key: 'a_id'
end
这个时候,我可用Author.find(1).papers
得到作者的文章列表,但是Paper.find(2).author
不能够返回 paper 的 author。我上面的 code,错误在什么地方。
我很疑问下面的用法,正确不正确?,如果正确,表示什么意思,在什么场合会用到。
class Author < ActiveRecord::Base
self.primary_key = 'aid'
has_many :papers, foreign_key: 'a_id', primary_key: 'pid'
end
谢谢。