我是 ruby 和 rails 的新手,但是我不知道为什么这不起作用。
我正在做一个带有帖子及其评论的简单博客,一切正常,但我尝试在 Post 模型中使用我自己的方法来获取该帖子中的最新评论。
class Post < ActiveRecord::Base
attr_accessible :content, :title
has_many :comments
def latestComment(id)
post = Post.find(id)
comment = post.comments.last
end
end
和 index.html.erb
<h1>Hello World!</h1>
<h2>Posts</h2>
<% @posts.each do |post| %>
<h3><%= link_to post.title, post %></h3>
<p><%= post.content %></p>
<%= latestComment = post.latestComment(post) %>
<% end %>
<h3>Add new post</h3>
<%= link_to "Add new post", new_post_path %>
这行得通,它返回一些十六进制值,所以该对象存在,但是我现在想从该对象中获取字段,如下所示
<p><%= latestComment.author %></p>
<p><%= latestComment.content %></p>
它失败了,错误是
undefined method `author' for nil:NilClass
这很奇怪,我不明白为什么我不能访问评论字段..
///comment.rb
class Comment < ActiveRecord::Base
attr_accessible :author, :content, :post_id
belongs_to :post
end