我正在尝试显示一个评论列表和一个表单,以便使用AJAX发表新评论。 simple_form_for块给出以下错误: DeliveryNegotiations#show中的ArgumentError 显示/home/action/socialpost/app/views/delivery_negotiations/show.js.erb,其中第10行引发: 缺少块
这是show.js.erb文件:
$("#conversation").html(
'<% @comments.each do |com| %> \
<strong> <%=j "User " + com.author_id.to_s + ":" %> </strong> \
<%=j (com.comment || " ") %> \
<br/> \
<% end %> \
<fieldset> \
<legend> \
New comment \
</legend> \
<%=j form_for ([@delivery_request, @delivery_negotiation, @comment]) do |builder| %> \
<%=j builder.text_area :comment %> \
<%=j builder.hidden_field :author_id, value: current_user.id %> \
<%=j builder.submit %> \
<% end %> \
</fieldset>\
');
非常感谢任何帮助。
答案 0 :(得分:0)
请将代码放入一个部分并从js.erb文件中渲染,因为它很容易进行更改。
在_comments_form.html.erb
中 <% @comments.each do |com| %>
<strong> <%= "User " + com.author_id.to_s + ":" %> </strong>
<%= (com.comment || " ") %>
<br/>
<% end %>
<fieldset>
<legend>
New comment
</legend>
<%= form_for ([@delivery_request, @delivery_negotiation, @comment]) do |builder| %>
<%= builder.text_area :comment %>
<%= builder.hidden_field :author_id, value: current_user.id %>
<%= builder.submit %>
<% end %>
</fieldset>
在你的js.erb文件中
$("#conversation").html("<%=escape_javascript(render 'comments_form')%>");
我希望这会对你有所帮助。