rails多态查询

时间:2011-04-08 01:50:33

标签: ruby-on-rails activerecord polymorphic-associations

为什么会这样?

@discussions = Discussion.where(:discussable => @discussable) 

不起作用。然而这项工作:

@discussions = Discussion.where(:discussable_id => @discussable.id, :discussable_type => @discussable.class.to_s)

感谢。

2 个答案:

答案 0 :(得分:7)

看起来修复此问题的拉取请求已于1个月前合并到主版:

https://github.com/rails/rails/pull/7273

不幸的是,它只会在Rails 4中发布:(

答案 1 :(得分:1)

因为在第一个中你传递了一个完整的模型实例。该属性必须是id(整数)并传递一个对象。第二个是好的,因为你传递了id(正确)。