tud*_*ddy 0 comments ruby-on-rails view
在Rails 3博客类型的应用程序中,我有一个多态评论模型,帖子有评论(通过:评论).Post#Show页面有一个评论表单,通过AJAX发布到下面的评论列表.一切都工作正常除了Rails由于某种原因在我的评论列表的最底部的[]中为该帖子上的所有评论转储完整的数据库条目列表.我无法弄清楚这是来自哪里以及为什么!
这里可能是相关的代码块,请随时要求更多!提前致谢.
意见/职位/节目
...
<%= render 'comments' %>
...
Run Code Online (Sandbox Code Playgroud)
意见/职位/ _comments
<%= render :partial => 'comments/form' %>
<ul class="comments">
<% if @post.comments.empty? %>
<li>none yet</li>
<% else %>
<%= render :partial => 'comments/comment' %>
<% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)
观点/评论/评论
<%= @comments.each do |comment| %>
<li>
<p class="comment_body">"<%= comment.body %>"</p>
<br/>
<p class="comment_info"><%= comment.name %> - <%= time_ago_in_words(comment.created_at) %> ago </p>
</li>
<% end %>
Run Code Online (Sandbox Code Playgroud)
发布控制器
def show
@post = Post.find(params[:id])
@comments = @post.comments
@commentable = @post
@comment = Comment.new(:commentable => @post)
@title = @post.author
end
Run Code Online (Sandbox Code Playgroud)
这里是错误蔓延的地方(来自Page Source).在最后一条评论关闭之后和评论结束之前:
....
</li>
[#<Comment id: 97, name: "hmmm?", body: "hmmm", created_a...
</ul>
Run Code Online (Sandbox Code Playgroud)
那是什么东西,为什么会在这里!?谢谢.
它是=在@comments.each标签.它返回的结果each是整个数组.
例如:
irb> [1,2].each {|i| puts i }
1
2
=> [1, 2]
Run Code Online (Sandbox Code Playgroud)
所以:
<%= @comments.each do |comment| %>
Run Code Online (Sandbox Code Playgroud)
应该只是:
<% @comments.each do |comment| %>
Run Code Online (Sandbox Code Playgroud)