View说用户是零,但psql显示我有用户

时间:2015-04-13 00:37:55

标签: ruby-on-rails ruby postgresql ruby-on-rails-4 heroku

我正在尝试在视图中显示所有用户。我在Ruby 2.1.1上使用Rails 4.1.0。我也在使用Heroku。

当我运行psql命令'select * from users'时,它显示3个用户。但是,在视图中,它似乎认为我的@users变量是nil

这就是我的视图/控制器/模型的样子:

查看(app / views / status / index.html.erb)

<% if current_user %>
  <h1>All users</h1>
  <% if @users.nil? %>
    users is nil
  <% else %>
    <% @users.each do |user| %>
    <%= user %>
    <% end %>
  <% end %>
  4
<% else %>
  <%= render 'welcome' %>
<% end %>

控制器:(app / controllers / users_controller.rb)

class UsersController < ApplicationController
  def index
    @users = User.all
  end
end

型号(app / models / user.rb)

class User < ActiveRecord::Base
  class << self
    def from_omniauth(auth)
      provider = auth.provider
      uid = auth.uid
      info = auth.info.symbolize_keys!
      user = User.find_or_initialize_by(uid: uid, provider: provider)
      user.name = info.name
      user.avatar_url = info.image
      user.profile_url = info.urls.send(provider.capitalize.to_sym)
      user.save!
      user
    end
  end
  has_many :comments, dependent: :delete_all
end

对我做错的任何帮助或想法都会很棒。

1 个答案:

答案 0 :(得分:2)

要显示User中设置的UsersController个对象的列表,索引视图应位于名为app/views/users/index.html.erb的文件中。

正在使用app/views/status/index.html.erb

app/views/status/index.html.erb未与UsersController相关联;因此@users为零,并且正确显示users is nil消息。