私はcurrent_user.user_idにこのNoMethodError
を取得しています。以下は私のユーザーモデルの表です。私はcurrent_user.user_idが存在するので、そのエラーの意味を知らない。何がこの問題を引き起こす可能性がありますか?私はここで失われています。私が覚えている限り、私はこのエラーに遭遇していませんでした。私はプロジェクトに新しいものを追加していました。私はユーザーモードに関係しない変更を行っていましたが。なぜNoMethodErrorの場合は、current_user.user_idが存在するのですか?無知で混乱しています。Ruby - レール - NoMethodError onユーザーモデル
エラー -
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
+1。アンドリューに感謝します!それは素晴らしい説明です。 –