如何在Rails中为博客分离(新建,创建,删除)操作和显示操作?

时间:2014-03-27 05:59:43

标签: ruby-on-rails ruby-on-rails-4

我正在尝试建立博客并遇到一些问题。该博客有一个单独的仪表板,其中包含自己的布局/dashboard。想象一下,我有一个名为post的模型。在博客中,博客帖子网址将类似于/post/hello-world。通常它很容易添加,编辑和删除这些帖子。我只需要在路线中添加resources :posts并像/post/new一样进行编辑。

但是我需要将新的,创建和销毁操作移动到仪表板。所以它就像dashboard/post/new。我尝试通过在dash控制器中添加新操作并尝试发布到post创建操作来实现此目的。它失败了。试图仅改变创建(发布)和新操作的路径,它也失败了。

我的问题是,在这种情况下,做事的标准方法是什么?

2 个答案:

答案 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