我NoMethodError
为 current_user.user_id 得到这个。下面是我的用户模型表。我不知道那个错误是什么意思,因为 current_user.user_id 存在。什么可能导致这个问题?我在这里迷路了。据我记得我没有收到这个错误,我一直在向项目中添加新东西,并且在某个地方我搞砸了。尽管我正在进行与用户模式无关的更改。如果 current_user.user_id 存在,为什么 NoMethodError 之后?无知和迷茫。
错误 -
Started GET "/item/list" for 10.10.10.10 at 2012-05-01 23:19:19 -0400
Processing by Item#list as */*
Completed 500 Internal Server Error in 0ms
NoMethodError (undefined method `user_id' for nil:NilClass):
app/controllers/Item_controller.rb:52:in `list'
用户模型表 -
mysql> explain users;
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user_id | varchar(255) | YES | | NULL | |
| name | varchar(255) | YES | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+
使用 current_user.user_id 的项目控制器 -
def list
@mylist = Item.find(:all, :select => 'item_num', :conditions => { :id => current_user.user_id, :item_status => ["New"]} )
respond_to do |format|
format.html { render :partial => 'item_list'}
format.js
end
return @mylist
end
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def debug
render :text => current_user.user_id #prints correct user_id
end