2011-05-28 14 views
10

Rotalar ismiyle belirtildiği zaman form_for 'lar ile nasıl ilgilenirsiniz? Gerçekten almak istediğim bazı garip rota hataları alıyorum.İsim alanı rotaları kullanırken rota hataları

namespace :admin do 
    resources :companies 
end 

Çoğu şeyler sadece iyi çalışır, ancak yeni bir form oluşturmak zaman bir hata alıyorum: Örneğin

göre, şimdi routes.rb içinde sizin :admin ad alanında Admin::CompaniesController denilen bir denetleyici var diyelim . İşte kod:

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

Ve burada hata mesajı yok:

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

nasıl raylar burada güzel oynamaya alabilirim? Açıkçası, düzenlemeler için bir URL ve yeni formlar için başka bir tane istiyorum. Genellikle, :url'u form_for bildirimlerime koymam bile gerekmeyecek, ancak yuvalama nedeniyle zorlandım.

Şimdi burada ne yapacağımı bilmiyorum, en azından zarif değil.

cevap

24

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

+0

Yukarıdaki çözümden çok daha iyi. Teşekkür ederim. Rayların iyi bir yolu olduğundan memnunum. –

+0

Harika, sizin için çalıştığını gördüğüme sevindim. Uygulamanızda bol şanslar! –

+0

Harika! Ayrıca burada aynı sorun vardı, basit 3.0form 3.0 kullanılarak Rails 4.0.0'dan 4.0.1'e geçiyordu. Teşekkür ederim! – tomasmuller

0

kullanarak ben sadece böyle, yolun sonuna yolunu çoğul zorunda inanıyoruz:

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

Beklediğim ne olurdu değil. Sadece tahmin ettim. Bu geçerli bir yol veya herhangi bir şey değil, ancak koğuş ve yayınlar için çalışıyor gibi görünüyor.

+0

Bu şekilde yaparsanız, düzenleme veya yeni bir giriş oluşturuyorsanız farklı bir url kurmanız gerekir - yeni giriş admin_companies_path öğesini kullanır ve bir düzenleme admin_company_path (@company) kullanırdı, ancak yukarıdaki çözüm her yerde daha iyi olur çünkü hem düzenleme hem de yeni için uygun şekilde çalışıyor. –

İlgili konular