2011-01-12 7 views
8

मैं अपने रेल दृश्य में इस अजीब आउटपुट से फंस गया हूं। यहां मेरा मॉडल है:यह रेल क्यों एक .each do loop के अंत में कच्चे सरणी को थूकते हुए देखते हैं?

class Comment < ActiveRecord::Base 
    belongs_to :post 
end 

यहां मेरे विचार का प्रासंगिक हिस्सा है। मैंने कोड के इस ब्लॉक में समस्या को अलग कर दिया है, विशेष रूप से जो भी अंतिम पुनरावृत्ति के बाद होता है और लूप <% end %> के बहुत अंत से पहले होता है। यदि मैं प्रत्येक पुनरावृत्ति में मुद्रित वास्तविक पाठ पर टिप्पणी करता हूं, तो कच्ची सरणी अभी भी प्रिंट करती है।

टिप्पणीकार:: माइकल

अच्छा पोस्ट

<h2>Comments</h2> 
    <%= @post.comments.each do |comment| %> 
    <p> 
     <strong>Commenter:</strong> 
     <%= comment.commenter %> 
    </p> 
    <p> 
     <%= comment.body %> 
    </p> 
    <% end %> 

यहाँ अजीब निर्गम (। डब्ल्यू/नमूना टिप्पणी) है।

टिप्पणीकार: माइकल

अच्छा पोस्ट।

टिप्पणीकार: माइकल

टेस्ट।

टिप्पणीकार: जॉन

सरणी अभी भी अजीब मुद्रण है?

[#<Comment id: 1, commenter: 
"Michael", body: "Good post.", 
post_id: 1, created_at: "2011-01-12 
03:51:20", updated_at: "2011-01-12 
03:51:20">, #<Comment id: 2, 
commenter: "Michael", body: "Good 
post.", post_id: 1, created_at: 
"2011-01-12 03:52:06", updated_at: 
"2011-01-12 03:52:06">, #<Comment id: 
3, commenter: "Michael", body: 
"Test.", post_id: 1, created_at: 
"2011-01-12 03:52:24", updated_at: 
"2011-01-12 03:52:24">, #<Comment id: 
4, commenter: "John", body: "Is the 
array still printing funny?", post_id: 
1, created_at: "2011-01-12 03:57:20", 
updated_at: "2011-01-12 03:57:20">] 

अंत में, यहाँ है कैसे विकास लॉग पढ़ रहा है। वे सब इस तरह दिखते हैं।

Started GET "/posts/1" for 127.0.0.1 at 2011-01-11 22:01:52 -0600 
    Processing by PostsController#show as HTML 
    Parameters: {"id"=>"1"} 
    [1m[36mPost Load (0.1ms)[0m [1mSELECT "posts".* FROM "posts" WHERE ("posts"."id" = 1) LIMIT 1[0m 
    [1m[35mComment Load (0.3ms)[0m SELECT "comments".* FROM "comments" WHERE ("comments".post_id = 1) 
Rendered posts/show.html.erb within layouts/application (57.5ms) 
Completed 200 OK in 73ms (Views: 61.1ms | ActiveRecord: 0.4ms) 

क्या कोई जानता है कि इसका क्या कारण है? अगर यह PHP था, तो मुझे लगता है कि मैंने कोड में कहीं प्रिंट_आर छोड़ा था। लेकिन ऐसा नहीं है और मैंने ऐसा कुछ नहीं किया।

उत्तर

23

<%= @post.comments.each do |comment| %> में बराबर चिह्न को हटाने का प्रयास करें। बराबर केवल तभी जरूरी है जब विधि स्वयं कुछ आउटपुट करे। इस मामले में आप बस इसे संग्रहित करने के लिए उपयोग कर रहे हैं।

+1

धन्यवाद। मैं अब तक उस कार्यक्षमता को समझ नहीं पाया। उपयोगी! – Michael

+1

धन्यवाद, वही समस्या थी। – tpower

+0

धन्यवाद, मुझे भी एक ही स्थिति का सामना करना पड़ रहा है। – Adnan

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