0

我得到一个:

undefined method `lat' for nil:NilClass

错误,我想解决它。确切地说,消息是:

NoMethodError in Static_pages#faq

Showing /home/christophecompaq/Pop/app/views/layouts/_signed_in_header.html.erb where line #101 raised:

undefined method `lat' for nil:NilClass
Extracted source (around line #101):

98: <div id="javascript_tags with lat and lang">
99:   <%= javascript_tag do %>
100: user_latitude = "<%=raw @user.lat %>";
101: user_longitude = "<%=raw @user.lng %>";
102: 
103:    <% end %>
104:  </div>

我在静态页面文件夹中有另外 2 个页面,我也收到此错误 - “联系我们”和“关于我们”。

但是,当我从 _signed_in_header.html.erb 中取出下面的代码并将其粘贴到名为 show.html.erb 的文件中时,错误就会停止。

 <div id="javascript_tags with lat and lang">
  <%= javascript_tag do %>
 user_latitude = "<%=raw @user.lat %>";
 user_longitude = "<%=raw @user.lng %>";

    <% end %>
  </div>

但问题是,我需要在 _signed_in_header.html.erb 中有该代码。

所以我想我的问题是,'我在哪里可以定义 user_latitude = "<%=raw @user.lat %>" 和 user_longitude = "<%=raw @user.lng %>" 所以我的页面会在不给我的情况下识别它们错误?我已经尝试过应用程序控制器、静态页面控制器,但我仍然遇到问题。也许我必须在路线文件中放一些东西,我不确定?谢谢你的帮助。

4

1 回答 1

0

您必须查看定义@user实例变量的控制器方法——可能Static_pages#faq

发生的事情@user等于将nil它传递给视图时。因此,当您尝试向其发送该lat方法时,该方法会生成undefined methodlat' for nil:NilClass` 错误。

于 2013-05-19T00:29:43.203 回答