Rails 3.2.8与authlogic返回“undefined方法`每个'

时间:2012-08-16 20:08:11

标签: ruby-on-rails ruby ruby-on-rails-3 each authlogic

我一直在尝试使用我的Rails 3.2.8服务器设置authlogic。我可以使一切都工作,但每当我尝试查看我的用户名时,我都会收到此错误。

undefined method `each' for nil:NilClass

我还没有看到任何原因导致rails应用程序出现这种情况。如果我抓住一个旧的例子,它可以工作,但是当我用最新的版本设置时,它不会。任何人都知道为什么会这样吗?这是导致问题的rails生成的特定代码,据我所知它应该正常工作。

<% @user_sessions.each do |user_session| %>
  <tr>
    <td><%= user_session.email %></td>
    <td><%= user_session.password %></td>
    <td><%= link_to 'Show', user_session %></td>
    <td><%= link_to 'Edit', edit_user_session_path(user_session) %></td>
    <td><%= link_to 'Destroy', user_session, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>

提前感谢您的帮助!

编辑:

这是设置@user_sessions的地方,在我的config / routes.rb中我有这个

resources :users, :user_sessions
match 'login' => 'user_sessions#new', :as => :login
match 'logout' => 'user_sessions#destroy', :as => :logout

我的models / user.rb看起来像这样

class User < ActiveRecord::Base
  attr_accessible :email, :password, :password_confirmation
  acts_as_authentic
end

这是我的UsersController索引的样子。再次编辑:

def index
  @users = User.all 

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @users }
  end
end

这就是我的UserSessionController的样子:

 def index
   @user_sessions = UserSession.all

   respond_to do |format|
     format.html # index.html.erb
     format.json { render json: @user_sessions }
   end
 end

注意:我注意到这是一个问题。如果没有注释掉,则返回

undefined method `all' for UserSession:Class

1 个答案:

答案 0 :(得分:1)

Read this

尝试

@user_sessions = User.logged_in