我的帖子和评论之间的关系在Rails控制台和Web服务器中的显示方式有所不同!怎么会这样 我很困惑,因为一个部分使用错误的链接进行渲染,我以为还有其他问题,但是该部分应该根本不应该进行渲染,因为集合应该为空!我什至使用if / else检查大小,它仍然显示空关系的局部性!
Rails控制台:
irb(main):033:0> p=Post.find(6)
=> #<Post id: 6, title: "Yahoo", comment: "The home page.", link: nil, user_id: nil, created_at: "2013-10-06 21:53:24", updated_at: "2013-10-07 00:43:25">
irb(main):034:0> p.comments.size
=> 0
posts / show.haml:
%h2 Comments
Post ID:
[email protected]
, Comment Size:
[email protected]
- if @post.comments.empty?
No comments.
- else
= render @post.comments
浏览器: http://127.0.0.1:3000/posts/6
Comments
Post ID: 6 , Comment Size: 1
Commenter:
comments / _comment.haml:似乎不相关...
Rails 4.0.0,ruby 2.0.0p247(2013-06-27)[i386-mingw32]
也许此页面上某处有一个用于新评论的表单,并且您在控制器中构建了新评论:
@new_comment = @post.comments.build
这就是@ post.comments.count为1的原因。您可以重写代码:
= @post.comments.reject{ |t| t.new_record? }.count
UPD。
有一种更好的方法可以执行此操作:您可以在Comment模型中添加范围,而不是添加拒绝方法:
scope :saved, where('id is not ?', nil)
然后来看:
@post.comments.saved.count
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句