ruby-on-rails - Ruby on Rails 条件路由

标签 ruby-on-rails ruby routes

我有一个列出许多职位的网站,但我也希望每个帐户都能够在一个地方访问其职位。因此,我正在使用这些路线:

map.resources :jobs
map.resource :account, :has_many => :jobs

这让我得到像 localhost/jobs/localhost/account/jobs 这样的 URL。但是,两者似乎都呈现 JobsController::index。我如何在索引操作中设置条件(如何访问 account/jobs 或只是 jobs 在 URL 中指定?)或更改帐户路由以呈现不同的操作?执行此操作的正确方法是什么?

最佳答案

你可以在创建你的路由时使用一个 block ,然后传递一个:controller参数,就像这样

map.resource :account do |account|
  # If you have a special controller 'AccountJobsController'
  account.resources :jobs, :controller => "account_jobs"
end

将您的 Controller 放入一个目录结构中可能会更干净,然后您可以以嵌套的方式引用它们。例如:

map.resource :account do |account|
  account.resources :jobs, :controller => "accounts/jobs"
end

如果您使用上面的代码片段,您应该在 app/controllers/accounts/jobs_controller.rb 中创建一个 Controller ,其定义如下:

class Account::JobsController < ApplicationController
  ##
  ## etc.
  ##
end

您始终可以使用 rake routes 来检查生成了哪些路由以及它们将使用哪些 Controller 。

关于ruby-on-rails - Ruby on Rails 条件路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758164/

相关文章:

ruby-on-rails - 错误 - 未初始化的常量 Project::Ticket

ruby-on-rails - Rails 应用程序的狼蛛

ruby - 用 Ruby 打印报告和发票?

asp.net - 在 ASP.Net 中实现动态 URL 重写的最佳方法是什么?

ruby-on-rails - 生成一个唯一且随机的 6 个字符长的字符串来表示 ruby​​ 中的链接

ruby-on-rails - 具有枚举和关联的工厂女孩

ruby-on-rails - 理解和创建证书请求和私钥

ruby-on-rails - 根据其他表获取记录

javascript - 将 Rails 路线映射到 Ember 路线

ruby-on-rails - 将 routes.rb 文件分成多个文件以便更好地管理的好方法是什么?