我有3个模特
在商家展示页面上,我会显示与该商家相关的所有评论:
Name:<%= @business.name %>
<%= render @business.comments %>
评论部分
Comment: <%= comment.comment %><br >
By: <%= User.find(comment.user_id).name %>
是否有更好的方法来显示用户名而不是使用User.find?
这是我的模特 用户
class User < ActiveRecord::Base
attr_accessible :email, :name
end
商业
class Business < ActiveRecord::Base
attr_accessible :name, :category
has_reputation :votes, source: :user, aggregated_by: :sum
acts_as_commentable
end
注释
class Comment < ActiveRecord::Base
include ActsAsCommentable::Comment
attr_accessible :comment, :user_id
belongs_to :commentable, :polymorphic => true
default_scope :order => 'created_at ASC'
belongs_to :user
validates :user_id, presence: true
end
答案 0 :(得分:3)
我相信你可以使用它:
<%= comment.user.name %>
Rails将为您处理加载。
答案 1 :(得分:1)
每条评论都属于一个用户。所以,你只需要以这种方式获得用户
comment.user.name
答案 2 :(得分:0)
我认为最好的方法是:
<%= comment.user.try(:name) %>
我看到你有validates :user_id, presence: true
来user
。但是如果删除了该用途,则comment.user.name
会出错。
或者您可以使用:
<%= comment.user.blank? ? "Visitor" : comment.user.name %>