我得到了:
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 =“&lt;%= raw @ user.lat%&gt;”和user_longitude =“&lt;%= raw @ user.lng%&gt;”所以我的页面会识别它们而不会给我错误?“我已经尝试过应用程序控制器,静态页面控制器,但我仍然遇到问题。也许我必须在路线文件中放一些东西,我不确定?谢谢你的帮助。
答案 0 :(得分:0)
您必须查看定义@user
实例变量的控制器方法 - 可能是Static_pages#faq
。
当您将@user
传递给视图时,nil
等于lat
会发生什么。因此,当您尝试发送undefined method
方法时,会为nil生成{{1}} lat':NilClass`错误。