1

Hi guys, I can't seem to make this code work on my project.

This is the code in my config.rb

active_nav = {:class => "Active"} // Changed it to nav_active hoping it would work but it didn't.

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

This is the code in my _header.haml

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

My html links are:

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

Output is still

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

1 回答 1

0

似乎您的 Home 路径root_url在您的路线中设置indexHomes Controller. 因此,您将输出链接作为 Home 的“/”。

另请注意,您已index在 Home Controller 中正确创建了该方法,并且还在index.html您的视图中创建了该文件。

还要运行rake routes以确定您要获得的路径Home Controller index并确保它没问题。

更新:

索引文件路径在 Rails 中的处理方式不同,因为它们与控制器名称相关联。因此,如果您的控制器名称为Homes,则您的索引路径为homes_path. 可能,这似乎是不同路线形成的原因。所以改变它的形成路径。

或者,您可以使用

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

由上述:as属性形成的路径将是index_pathindex_url

于 2013-02-22T11:47:14.530 回答