我想圍繞這個問題來解決我的問題。我知道意見不應該有那麼多的邏輯。我有一個與用戶,帖子和評論的應用程序。用戶有很多帖子和評論。如何從我的視圖中刪除此邏輯?
class User < ActiveRecord::Base
has_many :posts
has_many :comments
帖子屬於用戶,並有很多評論。
class Post < ActiveRecord::Base
has_many :comments
belongs_to :user
評述屬於用戶和帖子
class Comment < ActiveRecord::Base
belongs_to :post
belongs_to :user
在我的崗位#放映視圖中顯示我的下發表評論。我想顯示發表評論的用戶的姓名。目前我有這個在我看來:
<% @post.comments.each do |comment| %>
<p>
<b>Commenter:</b>
<%= link_to User.find(comment.userid).login, User.find(comment.userid) %>
</p>
<p>
<b>Comment:</b>
<%= comment.body %>
</p>
<% end %>
我應該有我的帖子控制器中的邏輯。但我很困惑。 @ post.comments返回屬於帖子的評論數組(?)。這意味着我不能擁有@commenter = @ post.comments.userid。我對這個問題感到困惑,所以我可能沒有解釋清楚。
一個建議,你可以使用'<%=渲染:部分=> @ post.comments%>'來遍歷那些評論一個接一個。在這種情況下,您必須將循環提取到另一個視圖文件'_comment.html.erb'中。 – PeterWong 2010-09-26 15:39:12
謝謝。這只是爲了清理代碼嗎? – 2010-09-26 15:47:53
是的,用於清理。我的回答會在視圖文件中清除你的'User.find ...',我的註釋會清理你的'@ post.comments.each'循環。 – PeterWong 2010-09-26 15:52:54