Ошибки маршрутов при использовании маршрутов пространства имен - PullRequest
10 голосов
/ 28 мая 2011

Как вы справляетесь с form_for, когда маршруты находятся в пространстве имен?Я получаю некоторые странные ошибки маршрута, которые я действительно ожидаю получить.

Например, допустим, у вас есть контроллер с именем Admin::CompaniesController в вашем :admin пространстве имен в вашем маршруте.*

Большинство вещей работает просто отлично, но я получаю сообщение об ошибке при отображении новой формы.Вот код:

<%= simple_form_for(@company, :url => admin_company_path(@company)) do |f| %>

А вот и сообщение об ошибке:

ActionView::Template::Error: No route matches {:action=>"show", :controller=>"admin/companies", :id=>#<Company id: nil, name: nil, phone_number: nil, address: nil, postal_code: nil, is_enabled: true, courses_created: 0, province_id: nil, theme_id: nil, payment_plan_id: nil, created_at: nil, updated_at: nil>}

Как мне заставить рельсы играть здесь хорошо?Я, очевидно, хочу один URL для редактирования, а другой для новых форм.Обычно мне даже не нужно было вставлять :url в мои form_for заявления, но из-за вложенности я вынужден это сделать.

Понятия не имею, что здесь делать, по крайней мере, не элегантно.

Ответы [ 2 ]

24 голосов
/ 28 мая 2011

Попробуйте использовать simple_form_for([:admin, @company]) do |f|

0 голосов
/ 28 мая 2011

Полагаю, мне просто нужно умножить путь в конце пути, например:

<%= simple_form_for(@company, :url => admin_companies_path(@company)) do |f| %>

Это не то, чего я ожидал.Я только догадывался об этом.Это недопустимый маршрут или что-то еще, но, похоже, он работает для пут и постов.

...