use*_*029 5 ruby-on-rails ruby-on-rails-3
有关使用Rails 2/3的default_scope的问题.在我的Rails 3项目中,我使用了很多default_scope来按created_at desc进行排序.所以首先我写道:
default_scope order("created_at desc")
在我的很多模特中.但问题是created_at几乎存在于我的每个应用程序表中......所以如果我编写一个简单地在两个表上进行连接的查询,我会得到一个SQL错误模糊列created_at ...所以我不得不重写所有default_scopes包括table_name,如:
default_scope order("posts.created_at desc")
有没有更好的方法来处理这个问题,还是唯一的解决方案?
谢谢.
在Rails中使用SQL字符串时,应始终指定表名,以避免这些歧义.请注意,您可以这样做:
default_scope order("#{table_name}.created_at desc")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
835 次 |
| 最近记录: |