0

パンくずリストがさまざまなコントローラーを介してナビゲーション履歴をたどるようにしようとしています

アプリケーションコントローラー

add_breadcrumb 'Home', root_path

私の public_pages コントローラーで

class PublicPagesController < ApplicationController


def index

end

def news
 add_breadcrumb "News", news_path
 add_breadcrumb "Contact us", contact_path
end

def contact_us
add_breadcrumb "News", news_path
add_breadcrumb "Contact us", contact_path
end

したがって、ユーザーがログインしたときにのみアクセスできるprivate_pagesという別のコントローラーがあり、これには独自のroot_pathがあります。

異なるコントローラで異なるアクションにアクセスするときにブレッドクラムを表示するにはどうすればよいですか

ありがとう

4

1 に答える 1

1

まず、リクエストごとに登録するhomeパンくずリストを as に追加します。この点でアプリケーションが公開されていない場合は、それを無視して、メソッドの前にブレッドクラムを保持してください。ApplicationControllerhomePublicPagesController

次に、次を更新しますPublicPagesController

class PublicPagesController < ApplicationController

  def index
  end

  def news
    # to show Home / Contact Us / News
    add_breadcrumb "Contact Us", news_path
    add_breadcrumb "News", news_path
  end

  def contact_us
    add_breadcrumb "Contact Us", news_path
  end

end

上記は、add_breadcrumb "Home", news_pathで呼び出されることを前提としていますApplicationController

bootstrap競合または統合に関しては、次の 2 つを参照してください。

https://github.com/weppos/breadcrumbs_on_rails/issues/24
https://gist.github.com/2400302

homeユーザーがログインしているかどうかに基づいてブレッドクラムを修正する場合は、次のように を追加before_filterしますApplicationController

before_filter :set_home_breadcrumb

def set_home_breadcrumb
  if user_signed_in?
    add_breadcrumb "Home", :user_home_path
  else
    add_breadcrumb "Home", :root_path
  end
end
于 2013-01-19T23:28:37.283 に答える