После этого фрагмента я настроил в своем приложении rails подсветку текущей ссылки, которая отображается.
<div class="env-alt rtl">
<%= section_link( "Home", :controller => 'welcome' ) %> |
<% if user_signed_in? %>
<%= section_link( "Map", :controller => 'pois' ) %> |
<%= section_link( "News", :controller => 'news', :ref => 'home' ) %> |
<%= section_link( "Documents", :controller => 'documents', :ref => 'home' ) %> |
<%= section_link( "Organisations", :controller => 'organisations', :ref => 'home' ) %> |
<%= section_link( "Dashboard", :controller => 'welcome', :action => 'dashboard' ) %> |
<%#= link_to "Sign out", destroy_user_session_path, :id => 'sign_out' %>
<% else %>
<%= link_to "Sign up", new_user_registration_path, :id => 'sign_up' %> |
<%= link_to "Sign in", new_user_session_path, :id => 'sign_in' %>
<% end %>
</div>
В application_controller.rb у меня есть следующее:
def instantiate_controller_and_action_names
@current_action = action_name
@current_controller = controller_name
end
В application_helper.rb:
def section_link(name, options)
action = options[:action] || 'index'
controller = options[:controller]
if action.eql?(@current_action) and controller.eql?(@current_controller)
link_to(name, options, :class => 'youarehere')
else
link_to(name, options)
end
end
Я думаю, у меня все настроеноправильно.Однако, это выдает мне странную ошибку:
Showing /home/syed/work/projects/mapunity/environment/app/views/shared/links/_user.erb where line #2 raised:
No route matches {:controller=>"devise/welcome"}
Extracted source (around line #2):
1: <div class="env-alt rtl">
2: <%= section_link( "Home", :controller => 'welcome' ) %> |
3: <% if user_signed_in? %>
4: <%= section_link( "Map", :controller => 'pois' ) %> |
5: <%= section_link( "News", :controller => 'news', :ref => 'home' ) %> |
Почему автоматически добавляется :controller => "devise/welcome"
?Любые указатели на то, где я иду не так, будут оценены.Заранее спасибо.