OK. Это безумие.
Я новичок в RoR и очень хочу в него разобраться, потому что все, что я видел до сих пор, делает его более привлекательным для той работы, которую я выполняю.
Однако я не могу выполнить очень простую вещь с RoR.
Я хочу эти контроллеры:
/admin/blog/entries (index/show/edit/delete)
/admin/blog/categories (index/show/edit/delete)
/admin/blog/comments (index/show/edit/delete)
... and so on
А эти модели:
Blog::Entry (table: blog_entries)
Blog::Category (table: blog_categories)
Blog::Comments (table: blog_comments)
... and so on
Теперь я уже прошел через некоторое количество страданий, чтобы сделать эту работу. Моя первая попытка была с генерацией строительных лесов (я использую 2.2.2). Я сгенерировал свои строительные леса, но мне пришлось переместить мою модель, а затем исправить ссылки на модель в моем контроллере (см. Модель Ruby on Rails внутри пространства имен не может быть найдена в контроллере ).
Это уже большая боль, но эй, я заставил ее работать. Теперь, хотя form_for не будет работать, и я не могу понять, как использовать помощники URL (я понятия не имею, как они называются ... это автоматически генерируемые методы, которые возвращают URL-адреса контроллерам, связанным с моделью). Я не могу понять, как их зовут. Моя модель - Блог :: Записи. Я попытался возиться с методом ресурса карты route.rb, но не повезло. Когда я пытаюсь использовать form_for с моей моделью, я получаю эту ошибку
undefined method `blog_entries_path' for #<ActionView::Base:0xb6848080>
Теперь. Это действительно довольно сложно. Я не собираюсь полностью разрушать организацию моего кода, чтобы использовать эту платформу, и если я не могу понять, как выполнить эту простую задачу (я исследовал это по крайней мере 5 часов), то я просто не могу продолжать.
Есть какие-нибудь идеи о том, как этого добиться?
Спасибо
EDIT
Вот мои маршруты:
admin_blog_entries GET /admin_blog_entries {:controller=>"admin_blog_entries", :action=>"index"}
formatted_admin_blog_entries GET /admin_blog_entries.:format {:controller=>"admin_blog_entries", :action=>"index"}
POST /admin_blog_entries {:controller=>"admin_blog_entries", :action=>"create"}
POST /admin_blog_entries.:format {:controller=>"admin_blog_entries", :action=>"create"}
new_admin_blog_entry GET /admin_blog_entries/new {:controller=>"admin_blog_entries", :action=>"new"}
formatted_new_admin_blog_entry GET /admin_blog_entries/new.:format {:controller=>"admin_blog_entries", :action=>"new"}
edit_admin_blog_entry GET /admin_blog_entries/:id/edit {:controller=>"admin_blog_entries", :action=>"edit"}
formatted_edit_admin_blog_entry GET /admin_blog_entries/:id/edit.:format {:controller=>"admin_blog_entries", :action=>"edit"}
admin_blog_entry GET /admin_blog_entries/:id {:controller=>"admin_blog_entries", :action=>"show"}
formatted_admin_blog_entry GET /admin_blog_entries/:id.:format {:controller=>"admin_blog_entries", :action=>"show"}
PUT /admin_blog_entries/:id {:controller=>"admin_blog_entries", :action=>"update"}
PUT /admin_blog_entries/:id.:format {:controller=>"admin_blog_entries", :action=>"update"}
DELETE /admin_blog_entries/:id {:controller=>"admin_blog_entries", :action=>"destroy"}
DELETE /admin_blog_entries/:id.:format {:controller=>"admin_blog_entries", :action=>"destroy"}
home / {:action=>"index", :controller=>"index"}
/:controller/:action/:id
/:controller/:action/:id.:format
Это выглядит не так. Вот мой route.rb (комментарии удалены):
ActionController::Routing::Routes.draw do |map|
map.resources :admin_blog_entries
map.home '', :controller => 'index'
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
end