获取belongs_to双亲轨道的数据 5.



我有一个这样的类:

class Child < ApplicationRecord
belongs_to :father
belongs_to :mother
end 

我的目标是创建终结点

  • 基本网址/父亲/孩子 #get 所有孩子为父亲
  • 基本网址/母亲/孩子 #get 所有孩子为母亲

我想知道嵌套这些资源的正确方法是什么,我知道我可以以一种方式做到这一点,例如:

class ChildrenController < ApplicationController
before action :set_father, only: %i[show] 
def show
@children = @father.children.all
render json: @children
end
... 

但是我怎样才能为基本网址/母亲/子获得相同的信息,这可以通过嵌套资源实现吗? 我知道如果需要,我可以对 routes.rb 进行编码以指向特定的控制器功能,但我想了解我是否遗漏了什么,如果我是,我不确定阅读活动记录和操作包文档。

我使用的实现如下: 我的子控制器:

def index
if params[:mother_id]
@child = Mother.find_by(id: params[:mother_id]).blocks
render json: @child
elsif params[:father_id]
@child = Father.find_by(id: params[:father_id]).blocks
render json: @child
else
redirect_to 'home#index'
end
end
...

我的路由.rb文件:

Rails.application.routes.draw do
resources :mother, only: [:index] do
resources :child, only: [:index]
end
resources :father, only: [:index] do
resources :child, only: [:index]
end
...
  • base_url/母亲/{mother_id}/孩子 #get 所有孩子为母亲
  • base_url/父亲/{father_id}/孩子 #get 所有孩子为父亲

相关内容

  • 没有找到相关文章

最新更新