我正在尝试建立博客并遇到一些问题。该博客有一个单独的仪表板,其中包含自己的布局/dashboard
。想象一下,我有一个名为post的模型。在博客中,博客帖子网址将类似于/post/hello-world
。通常它很容易添加,编辑和删除这些帖子。我只需要在路线中添加resources :posts
并像/post/new
一样进行编辑。
但是我需要将新的,创建和销毁操作移动到仪表板。所以它就像dashboard/post/new
。我尝试通过在dash控制器中添加新操作并尝试发布到post
创建操作来实现此目的。它失败了。试图仅改变创建(发布)和新操作的路径,它也失败了。
我的问题是,在这种情况下,做事的标准方法是什么?
答案 0 :(得分:4)
您可以在路线中使用:only/:except
选项
resources :posts, :except => [:new, :create, :destroy]
scope 'dashboard' do
resources :posts, :only => [:new, :create, :destroy]
end
耙路线的输出
posts GET /posts(.:format) posts#index
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PUT /posts/:id(.:format) posts#update
POST /dashboard/posts(.:format) posts#create
new_post GET /dashboard/posts/new(.:format) posts#new
DELETE /dashboard/posts/:id(.:format) posts#destroy
注意:如果您想要一个单独的控制台用于仪表板,您可以使用namespace 'dashboard'
代替scope
答案 1 :(得分:-1)
我建议在帖子控制器中设置仪表板布局
class PostsController < ApplicationController
layout "dashboard"
def create
# your code for create
end
end