2011-03-11 83 views
1

这样现在我有创建的方法..如何在这种情况下建立关系?

class TestMessage < ActiveRecord::Base 
    def test 
    Test.find(:first,:conditions => ["test_uri = ?",self.sfl_test_uri]) 
    end 
end 

class Test < ActiveRecord::Base 
    def test_messages 
    TestMessage.find(:all,:conditions => ["sfl_test_uri = ?",self.test_uri]) 
    end 
end 

请问有什么可以转换成关系呢?

+0

[自引用协会(http://railscasts.com/episodes/163-self-referential-association) – akrisanov 2011-03-11 08:52:13

回答

2

试着这么做:

class TestMessage < ActiveRecord::Base 
    belongs_to :test, :foreign_key => :sfl_test_uri, :primary_key => :test_uri 
end 

class Test < ActiveRecord::Base 
    has_many :test_messages, :foreign_key => :sfl_test_uri, :primary_key => :test_uri 
end 
+0

我可以使用:联接和:包括在一起与这种关系? TestMessage.find(:all,:joins =>:test,:include =>:test) – 2011-03-11 10:49:48

+0

只需包含它:TestMessage.includes(:test)和测试将被加载...无需加入... – Yannis 2011-03-11 14:41:59