我添加了一个带有几个 Controller 的管理命名空间,所以我们的东西可以从后端编辑内容。
例如,我有一个 Book
模型和 books_controller
允许客人浏览。现在我添加一个 admin/books_controller
,为管理员提供后台编辑书籍。
namespace :admin do
resources :books, except: :show
end
resources: books, only: [:index, :show]
目前为所有
link_to
和 form_for
在 admin_books_controller View 中,我需要添加命名空间 :admin
像这样:<%= form_for([:admin, @post]) do |f| %>
(在普通 Controller 中,它将是
form_for(@post)
)它有点重复,我想知道我是否可以将它设置在管理 Controller 的某个地方,以便所有
link_to
在该 Controller 中将路由到 admin 命名空间?
最佳答案
如果将模型范围置于命名空间下,则应自动反射(reflect)在表单生成器中。
所以像 rails g model admin/book
将生成嵌套在 admin 命名空间下的书模型。
如果然后在该对象上构建一个表单,例如 form_for Admin::Book.new
这应该针对任何适当嵌套的路由,例如:
namespace :admin do
resources :books
end
我希望这给出了一些您可以尝试的方向的指示。
此致。
关于ruby-on-rails - 我可以在 Controller 中设置默认命名空间路由吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9990815/