0

私はウェブサイトにたくさんのアンカーリンクがあるページを持っています#menu#sauces

ページ自体では、リンクは正常に機能し、見事です。ただし、別のコントローラー/ビューを使用している場合、リンクをクリックしてもメインコントローラーに戻らず、アンカーポイントをクリックします。

これは、ヘッダー(すべてのコントローラービューにある)にある1つのアンカーリンクの例です。

    <%= link_to '#main', :id => 'menu_link' do %>
    <li>Menu</li>
    <% end %>

それは:controller => "main", :action => "index"

ロケーションコントローラーなどの別のコントローラーにいる場合、リンクは次のようになりますlocalhost:3000/locations#menu

それは本当にあるべきですlocalhost:3000/#menu

ルートは、メインコントローラーとインデックスアクションに移動するように設定されています。

これが私のroutes.rbファイルです

 root :to => "main#index"
   match 'admin', :to => 'access#admin_index'
   match 'locations', :to => 'ranch_locations#locations'
   match ':controller(/:action(/:id))(.:format)'
4

2 に答える 2

1

別のコントローラーに送信されることを指定する必要があります。

<%= link_to '#main', :controller => "main", :action => "index", :id => 'menu_link' do %>
  <li>Menu</li>
<% end %>
于 2012-11-20T22:13:31.657 に答える
0

root_path(:anchor => :main)代わりに使用する必要があります"#main"

link_to "Comment wall", profile_path(@profile, :anchor => "wall")
# => <a href="/profiles/1#wall">Comment wall</a>

http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to

更新:

<%= link_to '#main', :id => 'menu_link' do %>

に変更する必要があります

<%= link_to root_path(:anchor => :main), :id => 'menu_link' do %>
于 2012-11-20T22:11:29.417 に答える