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>

Static Pages フォルダーには、「Contact Us」と「About Us」というこのエラーが発生する 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' for nil:NilClass` エラーが生成されます。latundefined method

于 2013-05-19T00:29:43.203 に答える