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>
Я даже пробовал с одинарной кавычкой:
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
Я мог бы сделать это с помощью прицелов
область действия: темы, лямбда {| conv_id | где (: speech_id => conv_id)}
и получить к нему доступ Message.where («некоторое условие»). threads ()
но я ищу аккуратную ассоциацию как
m = Message.find (1000)
В m.threads должны быть указаны все цепочки сообщений, к которым он относится