Заказ по сумме с отдельного контроллера часть 2 - PullRequest
0 голосов
/ 20 мая 2010

Хорошо, поэтому у меня было , это прекрасно работало , прежде чем сделать несколько добавлений контроллера и переместить некоторый код. Я чувствую, что упускаю что-то действительно простое здесь, но потратил часы, пытаясь понять, что происходит. Вот ситуация.

class Question < ActiveRecord::Base
  has_many :sites
end

и

class Sites < ActiveRecord::Base
  belongs_to :questions
end

Я пытаюсь отобразить свои сайты в порядке суммы столбца 'like' в таблице сайтов. Из моего предыдущего вопроса StackOverflow у меня это работало, когда партиал вызывался в файле / views/sites/index.html.erb. Затем я переместил партиал к вызову в / views/questions/show.html.erb file, и он успешно отображает сайты, но не может упорядочить их, как при вызове из представления «Сайты».

Я вызываю партиал из файла /views/questions/show.html.erb следующим образом:

<%= render :partial => @question.sites %>

и вот код индекса SitesController #

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

Ответы [ 2 ]

0 голосов
/ 22 мая 2010

Ах ... получается, что я переместил код контроллера @sites из SitesController в действие QuestionController Show. Затем мне пришлось изменить свой частичный на странице /views/questions/show.html.erb с

<%= render :partial => @question.sites %> 

до

<%= render :partial => @sites %> 
0 голосов
/ 20 мая 2010

Я думаю, что это должно быть

@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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...