好的。疯了吧。
我是 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 帮助程序(我不知道这些被称为什么......它们是自动生成的方法,将 URLs 返回到与模型关联的控制器)。我不知道他们叫什么名字。我的模型是博客::条目。我试图弄乱 route.rb 的地图资源方法,但没有运气。当我尝试将 form_for 与我的模型一起使用时,出现此错误
undefined method `blog_entries_path' for #<ActionView::Base:0xb6848080>
现在。这真的很令人沮丧。我不会为了使用这个框架而完全破坏我的代码组织,如果我不知道如何完成这个简单的任务(我已经研究了至少 5 个小时),那么我根本无法继续。
关于如何实现这一点有什么想法吗?
谢谢
编辑
这是我的路线:
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
那看起来不太对劲。这是我的 routes.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