2011-01-12 1 views
8

내 Rails 뷰에서이 이상한 출력으로 난처한 상황에 처하게되었습니다. 내 모델은 다음과 같습니다.왜이 레일즈 뷰는 .each do 루프의 끝에서 원시 어레이 밖으로 뱉어 지나요?

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

여기 (. 샘플 의견/w) 이상한 출력됩니다.

주석 기 : 마이클

좋은 게시 할 수 있습니다.

주석 기 : 마이클

테스트합니다.

주석 기 존

배열은 여전히 ​​재미 인쇄인가? 개발 로그를 읽는 방법

[#<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라면, 나는 코드 어딘가에 print_r을 놓고 갔을 것 같다. 그러나 그렇지 않습니다. 그런 식으로 아무것도하지 않았습니다.

답변

23

<%= @post.comments.each do |comment| %>에서 등호를 제거해보십시오. 메소드 자체가 뭔가를 출력하는 경우에만 equals가 필요합니다. 이 경우에는 컬렉션을 반복 할 때 사용하는 것입니다.

+1

감사합니다. 지금까지 그 기능을 이해하지 못했습니다. 유능한! – Michael

+1

감사합니다. 똑같은 문제가있었습니다. – tpower

+0

고마워, 나는 또한 똑같은 상황에 직면 해있다. – Adnan

관련 문제