按订单排序无法正常工作

时间:2016-02-28 12:19:29

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个个人资料视图,其中列出了用户提交的所有问题/博客帖子。在其他视图中,order("created_at desc")正常工作,没有任何错误。但是,在我的个人资料视图中,即使我写了@questions = Question.all.order("created_at desc")它仍然显示错误。为了更好地举例说明这个问题,这里是当前正在发生的事情的图像。

enter image description here

正如您所看到的,由于我定义了问题应按降序显示,因此不应首先显示新测试标题编号吗?

我的家庭主管:

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做同样的事情。

1 个答案:

答案 0 :(得分:2)

问题是您已在@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 %>