Маршрутизация Rails 3 не генерирует правильные пути для новых и редактируемых представлений - PullRequest
0 голосов
/ 30 декабря 2011

Я получаю некоторую забаву, которая абсолютно смущает меня в Rails 3. Кажется, я не могу заставить маршрутизацию генерировать правильный путь, используя (в основном) стандартный стиль _form скаффолда.

Во-первых, я делаю все в пространстве имен "admin".Я обнаружил, что часть формы выдает ошибку маршрутизации, если я использую admin_team_path (@team) для генерации пути при создании новой команды, но затем отправка формы при редактировании выдает ошибку, если я не использую admin_teams_path.

admin_team_path (@team), где @team = Team.new выдает эту ошибку:

Нет подходящих маршрутов {: controller => "admin / groups",: action => "show",: id => #}

Между тем ... admin_teams_path (@team) где @team = выдает эту ошибку:

Не удалось найти действие 'edit' для TeamsController

Inпоследний случай, кажется, направляет на URL: http://localhost:3000/teams/1/edit - он не распознает пространство имен должным образом.

Вот мой полный _form.html:

<%= semantic_form_for(@team, :url => admin_teams_path(@team)) do |f| %>
  <%= f.semantic_errors %>

  <%= f.inputs do %>
    <%= f.input :user_id %>
    <%= f.input :league_id %>
    <%= f.input :name %>
  <% end %>

  <%= f.buttons do %>
   <%= f.commit_button :button_html =>{:class => "primary"} %>
  <% end %>
<% end %>

Чтодает?Как правильно создать эту частичную форму, чтобы она работала как для новых, так и для редактируемых действий?

Пространства имен кажутся такими беспорядочными для работы.

1 Ответ

1 голос
/ 30 декабря 2011

Предполагая, что вы определили свои маршруты в РЕСУРСНОЙ манере, например:

namespace :admin do
    resources :teams
end

Затем в своей _form части вы можете позволить рельсам позаботиться о действии следующим образом:

<%= semantic_form_for(["admin", @team]) do |f| %>
    .... #rest of the code
<% end %>
...