当用户发布名为Pins的专辑评论时,我有一个应用。我为其他用户创建了一个评论模型,以评论评论。我正在努力让评论说“发布者”,然后显示发布者的姓名。以下是一些代码:
引脚模型has_many :comments
用户模型has_many :comments
评论模型belongs_to :pin
belongs_to :user
这是评论控制器:
def create
@pin = Pin.find(params[:pin_id])
@comment = @pin.comments.create(params[:comment])
@comment.username = current_user
respond_to do |format|
if @comment.save
format.html { redirect_to @pin, notice: 'Comment was successfully created.' }
format.json { render json: @comment, status: :created, location: @comment }
else
format.html { render action: "new" }
format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
端
这是现在的应用程序: http://powerful-reaches-7038.herokuapp.com
我已尝试在Stack Overflow上发布的其他一些答案,但没有骰子。我想说的是:
<strong>Posted <%= time_ago_in_words(comment.created_at) %> ago by <%= comment.user.name %></strong>
答案 0 :(得分:2)
您正在为User
的用户名字段分配Comment
个实例。我假设username属性是数据库中的字符串。因此,如果您希望该名称出现在注释中,则需要为其指定当前用户的名称。
所以:
@comment.username = current_user.name
如果您已经在Comment
和User
之间建立关联,那么您可以这样做:
@comment.user = current_user
<%= @comment.user.name %>
答案 1 :(得分:0)
您可以在
中保存用户名@comment.username = current_user
并显示:
<%= comment.user.name %>
但必须是
<%= comment.username %>