Rails 4显示多个表中的数据

时间:2014-10-28 19:44:02

标签: ruby-on-rails ruby postgresql

我知道这很容易,但我无法正常工作。我正在创建一个用户可以创建帖子的网站。我想显示这些帖子以及用户名中包含的用户名。我无法展示它!我收到这个错误:

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 %>

1 个答案:

答案 0 :(得分:1)

似乎允许在您的应用中添加没有用户的帖子。因此,您可以将其替换为post.user.try!(:name)

P.S。您最好使用.order(:created_at)代替sort_by(&:created_at)