Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 仅在Heroku上获取NilClass错误_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails 仅在Heroku上获取NilClass错误

Ruby on rails 仅在Heroku上获取NilClass错误,ruby-on-rails,heroku,Ruby On Rails,Heroku,我的heroku日志中有一个错误,但是本地的一切都很好。有什么想法吗 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]: Star

我的heroku日志中有一个错误,但是本地的一切都很好。有什么想法吗

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" %>
2013-03-05T05:34:54+00:00应用程序[web.1]:在2013-03-05:34:54+0000开始获取98.222.28.137的“/”
2013-03-05T05:34:54+00:00 heroku[路由器]:at=info method=GET path=/host=objecss.herokuapp.com fwd=“98.222.28.137”dyno=web.1队列=0等待=0ms连接=1ms服务=73ms状态=500字节=643
2013-03-05T05:34:54+00:00应用程序[web.1]:ActionView::Template::Error(未定义nil:NilClass的方法“+”):
2013-03-05T05:34:54+00:00应用程序[web.1]:由EntriesController处理#索引为HTML
2013-03-05T05:34:54+00:00应用程序[web.1]:在15毫秒内完成500个内部服务器错误
2013-03-05T05:34:54+00:00应用程序[web.1]:呈现条目/_entries.html.erb(7.7ms)
2013-03-05T05:34:54+00:00应用程序[网站1]:16:
2013-03-05T05:34:54+00:00应用程序[网站1]:12:
2013-03-05T05:34:54+00:00应用程序[web.1]:布局/应用程序中呈现的条目/index.html.erb(12.5ms)
2013-03-05T05:34:54+00:00应用程序[网站1]:
2013-03-05T05:34:54+00:00应用程序[网站1]:应用程序/控制器/条目/控制器.rb:9:在“索引”中
2013-03-05T05:34:54+00:00应用程序[网站1]:
2013-03-05T05:34:54+00:00应用程序[网站1]:app/models/user.rb:21:在“全名”中
2013-03-05T05:34:54+00:00应用程序[web.1]:app/views/layouts/application.html.erb:13:in``应用程序视图布局应用程序html'中
2013-03-05T05:34:54+00:00应用程序[网站1]:15:
2013-03-05T05:34:54+00:00应用程序[网站1]:13:
2013-03-05T05:34:54+00:00应用程序[网站1]:11:
2013-03-05T05:34:54+00:00应用程序[网站1]:10:
2013-03-05T05:34:54+00:00应用程序[网站1]:14:

这是由于没有为此特定用户设置名字和姓氏造成的。只需在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
ActionView::Template::Error(nil:NilClass的未定义方法“+”)

这说明
first_name
的返回值是
nil
;在
NilClass
上没有定义
+
方法,因此错误


简单地说,你在Heroku上使用的
User
实例没有
first\u name
集合。

我在这里发现了一个相关的问题:那里的答案与我的问题相关吗?就是这样。名字和姓氏都是空的。谢谢