1

こんにちは、私のプロジェクトでこのコードを機能させることができないようです。

これは私のconfig.rbのコードです

active_nav = {:class => "Active"}// 動作することを期待して nav_active に変更しましたが、動作しませんでした。

  helpers do
    def nav_active(page)
      @page_id == page ? {:class => "Active"} : {}
    end
    def path(page)
      ("#{page}.html")
    end
  end

これは私の_header.hamlのコードです

  %li{nav_active("index")}= link_to ('Home'), path('index')
  %li{nav_active("page")}= link_to ('Fast Facts'), path('page')

私のhtmlリンクは次のとおりです。

  1. index.html.haml
  2. page.html.haml

出力はまだ

  <li><a href="/">Home</a></li>
  <li><a href="/page.html">Fast Facts</a></li>
4

1 に答える 1

0

あなたのホーム パスはroot_url、あなたのルートで に設定されているようindexですHomes Controller。したがって、ホームの「/」として出力リンクを取得しています。

indexまた、Home Controller にメソッドを正しく作成し、ビューにもファイルを作成したことに注意してindex.htmlください。

また、実行rake routesして取得しているパスを特定し、問題がないHome Controller indexことを確認します。

アップデート:

インデックス ファイル パスは、コントローラー名に関連付けられているため、Rails では異なる方法で処理されます。たとえば、コントローラー名がHomesの場合、インデックス パスはhomes_pathです。おそらく、これが異なるルート形成の原因と思われます。だから、その形成への道を変えてください。

または、使用することができます

match '/homes/:index', :to => 'homes#index', :as => :index

上記の:as属性によるパス形成は、index_pathまたはになりindex_urlます。

于 2013-02-22T11:47:14.530 に答える