Ordering .each results in the view
ruby, ruby-on-rails
Solution
You can use:
<% unless @questions.empty? %>
<% @questions.each do |question| %>
# ...
<% end %>
<% end %>
in your view and
@questions = Question.all(:order => 'created_at DESC', :limit => 20)
inside `show` or `index` method of `QuestionsController`.
Problem
I am wondering if it is possible to dictate the order (i.e. :order => 'created_at DESC') within the view. I realize that logic in the view is not ideal but I seem to be having some problems locating where to affect this output. For instance, here is my code: ``` <% @user.questions.each do |question| %> <%= link_to_unless_current h (question.title), question %> Created about <%= time_ago_in_words h(question.created_at) %> ago Updated about <%= time_ago_in_words h(question.updated_at) %> ago <%= link_to 'Edit', edit_question_path(question) %> | <%= link_to 'Destroy', question, :confirm => 'Are you sure?', :method => :delete %> <% end %> ``` In my QuestionsController I have the following index action but it is not affecting the output from the code above. ``` class QuestionsController < ApplicationController def index @questions = Question.all(:order => 'created_at DESC', :limit => 20) respond_to do |format| format.html # index.html.erb format.xml { render :xml => @questions } end end end ``` UPDATE: With respect to changing the @user.questions to @questions I get this error: ``` You have a nil object when you didn't expect it! You might have expected an instance of Array. The error occurred while evaluating nil.each ``` UPDATE 2: I guess I should mention that this code is in the questions show view. `views/questions/show.html.erb.`