我已经设置了default_scope来在我的应用程序中显示我的食谱。它应该默认显示所有“实时”并通过created_at对它们进行排序。
default_scope ->{ where(live: true).order("created_at DESC") }
这样可以正常工作,但是当我尝试显示我的食谱时,它们的订单数量相似(数据库中的另一列)
<% @recipes.order("likes_count desc").limit(16).each do |i| %>
<%=link_to image_tag(i.image(:fixed), alt: "MUC", :class => "newest-recipes"), i %>
<% end %>
似乎不想工作。我认为default_scope会覆盖它吗?我可以更改范围的顺序,这将改变它,但如果我一起删除范围,订单仍然不想工作。
我可能在这里缺少什么?
答案 0 :(得分:1)
检查日志中的SQL查询(我经常tail -f log/development.log
开发时)。您应该看到两个订单都在SQL查询的末尾,但默认范围始终是第一个。很确定它总是会覆盖它。