我正在创建一个带有博客模块的网站。博客文章可以是草稿或已发布。
已发布的帖子无法再编辑,草稿无法查看(仅编辑)
我目前有一个资源定义为
resources :posts, :path => "blog" do
collection do
get 'drafts'
end
end
我可以使用 访问草稿列表blog/drafts
,使用 创建新的帖子blog/new
,并通过 编辑草稿blog/:id/edit
。
但是,我希望使用创建blog/drafts/new
和编辑新草稿blog/drafts/:id
我需要定义new
、create
和路由来使用这个新方案edit
。update
和路线看起来new
很create
简单。但是我不知道如何处理edit
路由以删除操作名称部分。
此外,在查看默认路由定义时,我发现actionpack-3.2.9/lib/action_dispatch/routing/mapper.rb
以下内容:
member do
get :edit if parent_resource.actions.include?(:edit)
get :show if parent_resource.actions.include?(:show)
[...]
end
我不明白 rails 如何区分:edit
和:show
路由,并相应地映射 url。
谢谢