我对我的帖子有评论,我可以先显示我的评论,然后写下评论表格,但不能先显示我的表格,然后再评论。我很确定原因是.build:
<%= form_for([@question, @question.replies.build]) do |f| %>
因此,在此表单中,您只需输入注释正文并单击“提交”。
显示的数据是:评论者(评论的用户),评论正文和created_at。
我得到的错误是:
undefined method `first_name' for nil:NilClass
,提取的来源是:
<%= render @question.replies%>
<% @question.replies.each do |reply| %>
<div class="reply">
<p><%= link_to reply.user.first_name, user_profile_path(reply.user) %> says:</p>
<p><%= reply.body %></p>
<p>Answered <%= time_ago_in_words(reply.created_at) %> ago</p>
<% if current_user==reply.user %>
答案 0 :(得分:0)
你应该有某种@current_user吗?
所以尝试做这样的事情
<%= form_for([@question, @question.replies.build.tap{|a| a.user = @current_user}]) do |f| %>
问题是您使用form_for构建的注释具有零用户值。
答案 1 :(得分:0)
解决方法是在显示任何内容之前必须检查答复是否为零。
<% @question.replies.each do |reply| %>
<% unless reply.user.nil? %>