Chcę zarządzanie pewnymi modelami przenieść do kontrolerów w przestrzeni nazw “admin”, wszystko pięknie, tylko schody się zaczynają gdy chcę wykorzystać tam “form_for”.
Fragment routes:
namespace :admin do
resources :site
resources :news
resources :image
end
Fragment tree:
.
.
app
controllers
admin
image_controller.rb
news_controller.rb
site_controller.rb
application_controller.rb
site_controller.rb
helpers
admin
gallery_helper.rb
image_helper.rb
news_helper.rb
site_helper.rb
application_helper.rb
site_helper.rb
mailers
models
image.rb
news.rb
site.rb
views
admin
Gdy mam kod:
=form_for @image, :html => {:multipart => true} do |f|
dostaję błąd:
No route matches {:action=>"create", :controller=>"admin/image"}
pomimo że:
$ rake routes
[...]
admin_image_index GET /admin/image(.:format) {:controller=>"admin/image", :action=>"index"}
POST /admin/image(.:format) {:controller=>"admin/image", :action=>"create"}
new_admin_image GET /admin/image/new(.:format) {:controller=>"admin/image", :action=>"new"}
edit_admin_image GET /admin/image/:id/edit(.:format) {:controller=>"admin/image", :action=>"edit"}
admin_image GET /admin/image/:id(.:format) {:controller=>"admin/image", :action=>"show"}
PUT /admin/image/:id(.:format) {:controller=>"admin/image", :action=>"update"}
DELETE /admin/image/:id(.:format) {:controller=>"admin/image", :action=>"destroy"}
Jak już potem kombinowałem i ostatecznie udało mi się coś zrobić żeby ten błąd nie występował (w routes pozmieniałem, jednak na pewno tak nie powinno być jak tam kombinowałem), to kolejny problem że formularz nie jest wysyłany do kontrolera w przestrzeni admin.
Nie umiem wykombinować co tutaj jest źle, wcześniej w marszrutowaniu nie korzystałem z namespace. Jak patrzałem na guides, to jest niby ok…