ruby-on-rails - 我可以在 Controller 中设置默认命名空间路由吗

标签 ruby-on-rails ruby-on-rails-3 routes

我添加了一个带有几个 Controller 的管理命名空间,所以我们的东西可以从后端编辑内容。

例如,我有一个 Book模型和 books_controller允许客人浏览。现在我添加一个 admin/books_controller ,为管理员提供后台编辑书籍。

  namespace :admin do
    resources :books, except: :show
  end
  resources: books, only: [:index, :show]

目前为所有link_toform_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/

相关文章:

ruby-on-rails - Ruby case 语句未按预期执行

css - 在 act-as-taggable-on gem 中分配 css 类别的算法

php - 即插即用登录系统?

ruby-on-rails-3 - nginx 不在 Rails 3 中提供静态 Assets

mysql - 让 Ruby 和 MySQL 协同工作

ruby-on-rails - rake 数据库 :seed thorwing Can't mass-assign protected attributes

asp.net-web-api - 如何使用 Web API 中的属性路由通过 URI 发送数组?

ruby-on-rails - finder_sql 不使用 Rails 解析字符串

node.js - 使用express 4.13在单独的文件中路由

Angular 路线在谷歌灯塔中返回 404 错误