如何在 Rails 中设置没有特定父 ID 的子索引路径?

Posted

技术标签:

【中文标题】如何在 Rails 中设置没有特定父 ID 的子索引路径?【英文标题】:How to set child index path without specific parent id in Rails? 【发布时间】:2021-07-19 13:58:57 【问题描述】:

我有这样的 route.rb:

resources :companies do
  resources :company_jobs
end

和铁路路线:

 company_company_jobs GET    /companies/:company_id/company_jobs(.:format)  company_jobs#index

我需要添加一个链接来显示所有没有特定 company_id 的 company_jobs 模型,如下所示:

<a href="<%=company_company_jobs_path%>"></a>

任何人如何配置路由来做到这一点?非常感谢!

【问题讨论】:

【参考方案1】:

您的路由意味着您想要属于由 :id 标识的公司的所有 company_jobs。假设您在两个模型之间设置了模型关联,这将被引用为 - rails 将为您填写 id。

如果您只想包含所有职位,无论是哪家公司,您都可以将路线更改为:

  resources :companies do
    collection do
      get :company_jobs
    end
    resources :company_jobs
  end

这将创建一个新路由companies_company_jobs_path company#company_jobs 要使这条路线起作用,您需要将以下内容添加到 Companies_controller.rb

def company_jobs
end

【讨论】:

谢谢。顺便说一句,我找到了另一种列出所有没有公司 ID 的 company_jobs 的方法:获取 'company_job_list' => 'company_jobs#list'。这条路线将允许我在没有公司 ID 的情况下调用 company_job_list_path,并且所有 company_jobs 都将调用控制器的列表函数

以上是关于如何在 Rails 中设置没有特定父 ID 的子索引路径?的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 3 中设置环境变量(设计 + Omniauth)

在 Rails3 / ActionMailer 中设置 Message-ID 邮件头

Rails:如何在 ActiveRecord 中设置默认值?

如何在 Rails 中设置 GraphQL Relay API

Rails + Cucumber/Capybara:如何在测试中设置/检索 cookie?

如何在 Rails OAuth 请求中设置参数?