2010-05-19 14 views
8

में ऑर्डर परिणाम। मुझे आश्चर्य है कि ऑर्डर को निर्देशित करना संभव है (यानी: ऑर्डर => 'create_at DESC') दृश्य के भीतर। मुझे एहसास है कि दृश्य में तर्क आदर्श नहीं है, लेकिन मुझे लगता है कि इस आउटपुट को प्रभावित करने के लिए कुछ समस्याएं हैं।ऑर्डरिंग।

<% @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 %> 

मेरी QuestionsController में मैं निम्नलिखित सूचकांक कार्रवाई है, लेकिन यह ऊपर कोड से उत्पादन को प्रभावित नहीं कर रहा है:

उदाहरण के लिए, यहाँ मेरी कोड है।

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 

अद्यतन:

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 

अद्यतन 2: @questions लिए @ user.questions बदलते के संबंध में मैं इस त्रुटि मिलती है मुझे लगता है कि मुझे लगता है कि इस कोड को सवाल में है उल्लेख करना चाहिए दृश्य दिखाने । views/questions/show.html.erb.

+0

मेरा जवाब संपादित किया गया:] –

उत्तर

10

आप उपयोग कर सकते हैं:

<% unless @questions.empty? %> 
    <% @questions.each do |question| %> 
     # ... 
    <% end %> 
<% end %> 
अपने ध्यान में रखते हुए

और

@questions = Question.all(:order => 'created_at DESC', :limit => 20) 

show अंदर या QuestionsController की index विधि।

+0

यह सही देखने के लिए वास्तविक वाक्यविन्यास नहीं है? इसे <% की आवश्यकता नहीं है? – bgadoci

+0

हां, आपको इसकी आवश्यकता है ... –

2

आप

<% @user.questions.each do |question| %> 

संपादित बजाय

<% @questions.each do |question| %> 

उपयोग करना चाहिए। आप निम्न तरीकों में से किसी एक का उपयोग करके शून्य त्रुटि से बच सकते हैं।

<% @questions.each do |question| %> 


<% end unless @questions.blank? %> 

या

<% for question in @questions %> 


<% end unless @questions.blank? %> 
+0

जब मैं ऐसा करता हूं तो मुझे एक त्रुटि मिलती है। मैंने अपना प्रश्न अपडेट किया। – bgadoci

+0

कृपया मेरे संपादित उत्तर की जांच करें। – Salil

+0

अच्छा ... जो त्रुटि से छुटकारा पा लिया लेकिन यह अब उपयोगकर्ता के प्रश्नों में नहीं खींच रहा है। मैं कैसे भेजूं: अनुरोध के साथ उपयोगकर्ता? – bgadoci

0

आपके विचार में चर @questions बजाय @user.questions का प्रयोग करें।

+0

जब मैं ऐसा करता हूं तो मुझे एक त्रुटि मिलती है। मैंने अपना प्रश्न अपडेट किया। – bgadoci

4

यह करने के लिए एक आसान तरीका है each के बजाय reverse_each उपयोग करने के लिए है:

<% @user.questions.reverse_each do |question| %> 

आप अवरोही क्रम में अपने प्रश्नों मिलता है, और नियंत्रक में कुछ भी स्पर्श नहीं करते।

संबंधित मुद्दे