Подреждане по описание не работи правилно

Имам изглед на профил, в който са изброени всички въпроси/публикации в блогове, изпратени от потребителя. В другите изгледи order("created_at desc") работи правилно без никакви грешки. Въпреки това, в изгледа на моя профил, въпреки че написах @questions = Question.all.order("created_at desc"), той все още ги показва неправилно. За да илюстрираме проблема още повече, ето изображение на това, което се случва в момента.

въведете описание на изображението тук

Както можете да видите, тъй като дефинирах, че въпросите трябва да се показват в низходящ ред, не трябва ли първо да се показва Номерът на заглавието на новия тест?

Моят домашен контролер:

class HomeController < ApplicationController
  def index
    @questions = Question.all.order("created_at desc")
    @blogs = Blog.all.order("created_at desc")
  end

  def profile
    @user = User.find(params[:id])
    @answer = Answer.all.order("created_at")
    @questions = Question.all.order('created_at DESC')
    @blogs = Blog.all.order("created_at desc")
  end

end

Цикълът, който използвам в изгледа на профила:

                <% @user.questions.each do |question| %>
                    <%= link_to question.title, question_path(question), :class => "ques" %>
                    <p class="pull-right">
                        <%= link_to question.user.username, question.user, :class => "bg" %>
                    </p>
                    <hr/>
                <% end %>

P.S: @blogs също прави същото.


person Ray    schedule 28.02.2016    source източник
comment
Опитайте да използвате Blog.order(created_at desc) вместо Blog.all.order(created_at desc).   -  person Albert Paul    schedule 28.02.2016
comment
Може би променете @user.questions на @questions обект, който вече сте създали. Може също да искате да проверите sql, създаден от този Question.all.order('created_at DESC').to_sql   -  person Islam Azab    schedule 28.02.2016
comment
Имате ли default_scopes в Models?   -  person Albert Paul    schedule 28.02.2016
comment
@IslamAzab Не мога да променя @user.questions, защото ще показва всеки въпрос в базата данни. Просто искам да покажа въпросите, зададени от този конкретен потребител. Както казах, работи правилно на другите ми изгледи, но не знам защо не работи в изгледа на моя профил.   -  person Ray    schedule 28.02.2016
comment
Опитайте да промените <% @user.questions.each do |question| %> на <% @user.questions.order('created_at DESC').each do |question| %>   -  person Pavan    schedule 28.02.2016
comment
Това е така, защото не показах датата, но ако искате да знаете, номерът на старото заглавие на теста е създаден в 2016-02-26 15:07:53 и номерът на заглавието на новия тест< /b> е създаден на 2016-02-28 12:12:38   -  person Ray    schedule 28.02.2016
comment
@Pavan, можеш ли да го публикуваш като отговор, за да го отбележа като решен?   -  person Ray    schedule 28.02.2016
comment
да! Публикувам го като отговор :)   -  person Pavan    schedule 28.02.2016


Отговори (1)


Проблемът е, че сте дефинирали @questions = Question.all.order('created_at DESC') в метода profile, но не го използвате в изгледа (имате @user.questions в изгледа, който не е същият като @questions). Освен това @questions ви дава всички въпроси, а не конкретните потребителски въпроси. Трябва да го промените на по-долу

@questions = @user.questions.order('created_at DESC')

И в гледката

<% @questions.each do |question| %>
  <%= link_to question.title, question_path(question), :class => "ques" %>
  <p class="pull-right">
  <%= link_to question.user.username, question.user, :class => "bg" %>
  </p>
  <hr/>
<% end %>
person Pavan    schedule 28.02.2016