好的,所以在添加一些控制器和重新定位某些代码之前我已经this working just fine了。我觉得我错过了一些非常简单的东西,但花了好几个小时试图弄清楚发生了什么。情况就是这样。
class Question < ActiveRecord::Base
has_many :sites
end
和
class Sites < ActiveRecord::Base
belongs_to :questions
end
我正在尝试按站点表中'like'
列的总和显示我的网站。从我的previous StackOverflow question开始,当我在/ views/sites/index.html.erb
文件中调用partial时,我的工作正常。然后,我将部分移动到/ views/questions/show.html.erb file
中,并且它成功显示了网站,但未能像从“网站”视图中调用时那样对它们进行排序。
我从/views/questions/show.html.erb文件调用partial,如下所示:
<%= render :partial => @question.sites %>
这里是SitesController#index code
class SitesController < ApplicationController
def index
@sites = @question.sites.all(:select => "sites.*, SUM(likes.like) as like_total",
:joins => "LEFT JOIN likes AS likes ON likes.site_id = sites.id",
:group => "sites.id",
:order => "like_total DESC")
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @sites }
end
end
答案 0 :(得分:0)
我认为应该是
@sites = @question.sites.all(:select => "sites.*, SUM(likes.like) as like_total",
:joins => "LEFT JOIN likes AS likes ON likes.site_id = sites.id",
:group => "sites.id",
:order => "SUM(likes.like) DESC")
答案 1 :(得分:0)
啊......事实证明我已将@sites控制器代码从SitesController移动到QuestionsController Show操作。然后,我必须在/views/questions/show.html.erb页面中更改我的部分
<%= render :partial => @question.sites %>
到
<%= render :partial => @sites %>