我一直在尝试用我的 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