私は、ユーザーが別の石のショーページへのリンクをクリックできるナビゲーションバーにドロップダウンを入れようとしています。私が今使っているコードでは、NoMethodErrorのプライベートメソッド `nil 'が呼び出されています:NilClass。Rails:表示ページへのリンクを含むドロップダウン
私は石のモデルではなく、その後の私application.html.erbである私のナビゲーションバーにこのコードを入れていますので、このプライベートメソッドエラーが間近に迫っているかなり確信しています。誰かが、Navbarのメソッドをどこに定義するべきか、私に正しい方向を教えてもらえますか?それとも何か他に何かがあれば、私は代わりにやっているはずですか?あなたは上のVAR @stones
に.each
を呼び出すとされていません
application.html.erb
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown Example
<span class="caret"></span></button>
<ul class="dropdown-menu">
<% @stones.each do |stone| %>
<li> <%= link_to stone_url do %>
<%= stone.name %>
<% end %>
</li>
<% end %>
</ul>
</div>
application_controller.rb
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
helper_method :current_order
def each
@product = Product.all
end
def current_order
if !session[:order_id].nil?
Order.find(session[:order_id])
else
Order.new
end
end
end
私はapplication_controllerまたはstone_controllerにbefore_filterを入れますか? – Kris
アプリケーション全体でこのナビゲーショントラフを使用している場合は、そのためにapplication_controllerを使用する必要があります – antpaw