我知道这很容易,但我无法正常工作。我正在创建一个用户可以创建帖子的网站。我想显示这些帖子以及用户名中包含的用户名。我无法展示它!我收到这个错误:
undefined method `name' for nil:NilClass
这是我的代码:
型号:
class User < ActiveRecord::Base
has_many :posts\
class Post < ActiveRecord::Base
belongs_to :user
控制器:
class PostsController < ApplicationController
def index
@posts = Post.includes(:user).all.sort_by &:created_at
@posts.reverse!
end
class UsersController < ApplicationController
def index
@users = User.all.order(:name)
end
查看:
<% @posts.each do |post| %>
<%= post.user.name %><BR><BR>
<%= post.post_content %><BR><BR>
<% end %>
答案 0 :(得分:1)
似乎允许在您的应用中添加没有用户的帖子。因此,您可以将其替换为post.user.try!(:name)
。
P.S。您最好使用.order(:created_at)
代替sort_by(&:created_at)
。