2013-03-05 65 views
0

我在我的heroku日誌中收到錯誤,但一切在本地都正常工作。有任何想法嗎?只有在Heroku上收到NilClass錯誤

The error: ActionView::Template::Error (undefined method `+' for nil:NilClass) 

我只是在我的user.rb中有這個小方法。

def full_name 
    return first_name + " " + last_name 
    end 

而這裏的Heroku的日誌:

2013-03-05T05:34:54+00:00 app[web.1]: Started GET "/" for 98.222.28.137 at 2013-03-05 05:34:54 +0000 
2013-03-05T05:34:54+00:00 heroku[router]: at=info method=GET path=/ host=objecss.herokuapp.com fwd="98.222.28.137" dyno=web.1 queue=0 wait=0ms connect=1ms service=73ms status=500 bytes=643 
2013-03-05T05:34:54+00:00 app[web.1]: ActionView::Template::Error (undefined method `+' for nil:NilClass): 
2013-03-05T05:34:54+00:00 app[web.1]: Processing by EntriesController#index as HTML 
2013-03-05T05:34:54+00:00 app[web.1]: Completed 500 Internal Server Error in 15ms 
2013-03-05T05:34:54+00:00 app[web.1]: Rendered entries/_entries.html.erb (7.7ms) 
2013-03-05T05:34:54+00:00 app[web.1]:  16:   <%= link_to "Users", users_path %> 
2013-03-05T05:34:54+00:00 app[web.1]:  12: <% if current_user %> 
2013-03-05T05:34:54+00:00 app[web.1]: Rendered entries/index.html.erb within layouts/application (12.5ms) 
2013-03-05T05:34:54+00:00 app[web.1]: 
2013-03-05T05:34:54+00:00 app[web.1]: app/controllers/entries_controller.rb:9:in `index' 
2013-03-05T05:34:54+00:00 app[web.1]: 
2013-03-05T05:34:54+00:00 app[web.1]: app/models/user.rb:21:in `full_name' 
2013-03-05T05:34:54+00:00 app[web.1]: app/views/layouts/application.html.erb:13:in `_app_views_layouts_application_html_erb___2449026742642080137_44886800' 
2013-03-05T05:34:54+00:00 app[web.1]:  15:  <% if admin? %> 
2013-03-05T05:34:54+00:00 app[web.1]:  13:  <%= link_to "#{current_user.full_name}", current_user %> 
2013-03-05T05:34:54+00:00 app[web.1]:  11: <%= link_to "Objecss", entries_path %> 
2013-03-05T05:34:54+00:00 app[web.1]:  10: <div class="utility"> 
2013-03-05T05:34:54+00:00 app[web.1]:  14:  <%= link_to "Log Out", logout_path("current"), method: "delete" %> 
+0

我在這裏發現了一個相關的問題:http://stackoverflow.com/questions/15151792/heroku-500-internal-server-error-undefined-method-username-for-nilnilclass?rq=1 有關我的問題的答案? – jthomas 2013-03-05 05:43:04

回答

0

這是第一個名字,而不是被設置爲這個特定的用戶姓氏而引起的。只需在heroku上打開rails控制檯併爲該用戶分配名字和姓氏。你可以做這樣的事情

[56] pry(main)> u=User.find(1) 
    User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]] 
[58] pry(main)> u.first_name = "John" 
=> "John" 
[59] pry(main)> u.last_name = "Doe" 
=> "Doe" 
[60] pry(main)> u.save 
    (0.3ms) BEGIN 
    User Exists (1.6ms) SELECT 1 AS one FROM "users" WHERE ("users"."username" = 'example' AND "users"."id" != 1) LIMIT 1 
    (1.3ms) UPDATE "users" SET "first_name" = 'John', "last_name" = 'Doe', "updated_at" = '2013-03-05 06:01:55.263347' WHERE "users"."id" = 1 
    (24.5ms) COMMIT 
=> true 
+0

就是這樣。名字和姓氏是空的。謝謝! – jthomas 2013-03-05 15:15:00

0

::的ActionView ::模板錯誤(對於無未定義的方法`+」:NilClass)

這是告訴你的first_name返回值nil;沒有+方法定義在NilClass,因此錯誤。

簡單地說,您在Heroku上使用的User的實例沒有設置first_name