Случай, когда меню основано на Routes.rb и Request.path - PullRequest
0 голосов
/ 24 апреля 2011

У меня есть случай, когда предложение, основанное на URL-адресе, по которому вы находитесь, приведет к различным опциям меню. Однако, в зависимости от некоторых меню, в которых вы можете находиться, он не распознает, что вам назначены некоторые переменные. Системные ошибки:

ActionController::RoutingError in Pages#users_page

Showing /home/initiald/RubymineProjects/SOWOnline/app/views/layouts/_navigation.html.erb where line #27 raised:

No route matches {:controller=>"results", :action=>"show"}

Вот код, который у меня есть до сих пор

<% case request.path %>
  <% #ROOT AND SETTINGS %>
  <% when '/', settings_path, '/guest' %>
  <% #SURVEY AND RESULTS %>
  <% when '/sow_survey', '/surveys', '/results', result_path, results_path, available_surveys_path, take_survey_path, view_my_survey_path, edit_my_survey_path %>
    <% if permitted_to? [:admin, :partner, :employee], :users  %>
      <%= link_to 'new survey', available_surveys_path %>
      <%= link_to 'edit survey', results_path %>
    <% end %>
  <% #USERS %>
  <% when '/register' , '/users', '/sow_users', edit_user_path %>
      <% if permitted_to? [:admin, :partner, :employee], :users  %>
          <%= link_to 'new user', register_path %>
          <%= link_to 'list users', list_users_path %>
      <% end %>
  <% else %>
<% end %>

1 Ответ

0 голосов
/ 24 апреля 2011

Нет никаких result_path без атрибутов, но есть result_path(result_id) путь, который:

{:controller=>"results", :action=>"show", :id => your_paticular_id}

и выглядит как

/results/:id

UPD

Просто используйте здесь регулярное выражение:

<% when '/sow_survey', '/surveys', '/results', /\/results\/\d*/, results_path, available_surveys_path, take_survey_path, view_my_survey_path, edit_my_survey_path %>

И да - ваш код запутан.

...