开发者

Route errors when using namespace routes

开发者 https://www.devze.com 2023-03-08 18:14 出处:网络
How do you deal with form_for\'s when the routes are namespaced? I am getting some weird route errors that I really expect to get.

How do you deal with form_for's when the routes are namespaced? I am getting some weird route errors that I really expect to get.

For example, let's say you have a controller called Admin::CompaniesController in your :admin namespace in your routes.rb:

namespace :admin do
  resources :companies
end

Most things work just fine, but I get an error when I render a new form. Here's the code:

<%= simple_f开发者_运维技巧orm_for(@company, :url => admin_company_path(@company)) do |f| %>

And here's the error message:

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>}

How can I get rails to play nice here? I obviously want one url for edits, and another for new forms. Usually, I'd never even have to put :url in my form_for statements, but because of the nesting, I am forced to.

I have no idea what to do here now, at least not elegantly.


Try using simple_form_for([:admin, @company]) do |f|


I believe I just have to pluralize the path at the end of the path, like this:

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

This is not what I would have expected. I just guessed at it. This is not a valid route or anything, but it seems to work for puts and posts.

0

精彩评论

暂无评论...
验证码 换一张
取 消