gpt4 book ai didi

ruby-on-rails - 如何在相同的操作中使用相同的 RESTFUL 名称/路由?

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:58 25 4
gpt4 key购买 nike

我有爸爸、妈妈和 child 模型。我已经在为爸爸使用 child 的 index 操作,并在 child Controller 中为妈妈做了另一个名为 mom_index 的操作,因为 child 属于妈妈和爸爸。

现在爸爸的路线去:

dad_kids GET    /dads/:dad_id/kids(.:format)      kids#index

因为:

resources :dads do
resources :kids
end

我需要我妈妈的路线去:

mom_kids GET    /moms/:mom_id/kids(.:format)      kids#mom_index

但是这样做:

resources :moms do
resources :kids
end

使用已经被爸爸使用的 child 的索引 Action 。我怎样才能使用 Kids mom_index 操作来做到这一点?

最佳答案

您可以只使用 if 语句来检查请求是针对 dads 还是 moms 等:

#app/controllers/kids_controller.rb
Class KidsController < ApplicationController
def index
if params[:mom_id].present?
# mom logic
elsif params[:dad_id].present?
#dad logic
end
end
end

另一种方法是设置不同的 Controller (但不推荐这样做,因为它不是 DRY):

#config/routes.rb
resources :moms do
resources :moms_kids, as: "kids" #-> domain.com/moms/:mom_id/kids
end

关于ruby-on-rails - 如何在相同的操作中使用相同的 RESTFUL 名称/路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24334848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com