我不了解ActiveRecord :: QueryMethods#references方法的定义中*table_names
参数的意义。
我已经阅读了有关查询接口的Rails指南,但无法理解为什么我们需要使用任何表名。看来,这种方法可以完美地与传递给它的任何东西一起使用。
User.includes(:posts).where("posts.name = 'foo'").references(:posts)
具有与以下相同的效果:
User.includes(:posts).where("posts.name = 'foo'").references(:abcd)
User.includes(:posts).where("posts.name = 'foo'").references(nil)
User.includes(:posts).where("posts.name = 'foo'").references(123)
User.includes(:posts).where("posts.name = 'foo'").references('anything you want')
我认为,如果我们有参数*table_names
,那么放置实际的表名和我们可以放置的其他东西之间会有一定的区别吗?