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