class Message
has_many :threads, :class_name=>"Message", :conditions => "`#{Message.table_name}`.conversation_id = #{self.send(:conversation_id)}"
end
m = Message.first
NoMethodError: undefined method `conversation_id' for #<Class:0xc5021dc>
我甚至用單引號嘗試:我怎麼可以指定has_many關聯動態條件
class Message
has_many :threads, :class_name=>"Message", :conditions => '`#{Message.table_name}`.conversation_id = #{self.send(:conversation_id)}'
end
m = Message.first
m.threads
這給了我Mysql::Error: You have an error in your SQL syntax
看來它沒有考慮#{...}
的事情而產生的條件SQL
我可以用範圍做
範圍:threads,lambda {| conv_id |其中,(:conversation_id => conv_id)}
和訪問它Message.where( 「某種條件」)的線程()
但要尋找一個整齊的關聯像
米= Message.find(1000) 米。線程應該給它所屬的所有對話線程
我試過has_many:threads,:class_name =>「Message」,:conditions =>'conversation_id = 1',我得到未知列'message_id' –