如何在 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