繁体   English   中英

Ruby on Rails 5,活动记录关联,仅API

[英]Ruby on Rails 5, Active Record Associations, API ONLY

我正在开发一个React本机应用程序,作为项目的一部分,我正在使用Ruby on Rails 5在API Only模式下为Active Directory创建一个API,并使用ActiveAdmin作为管理界面。 我已完成所有设置,并且一切正常。

在我想出一个API的概念之前,先给我提供了文件中的数据,我需要使用rails来复制其结构,以便可以进行内容管理。

但是我似乎无法正确地获得活动记录关联。

这是数据文件的示例...

{
    name: 'Scottish Stoics',
    days: [
      {
        day: 'Monday',
        meeting: [
          {
            name: 'Meeting one',
            location: 'Test',
            startTime: '11.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
          {
            name: 'Meeting two',
            location: 'Test',
            startTime: '10.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
          {
            name: 'Meeting three',
            location: 'Test',
            startTime: '10.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
        ],
      },
      {
        day: 'Tuesday',
        meeting: [
          {
            name: 'Meeting one',
            location: 'Test',
            startTime: '10',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
          {
            name: 'Meeting two',
            location: 'Test',
            startTime: '10',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
          {
            name: 'Meeting three',
            location: 'Test',
            startTime: '10',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
        ],
      },
    ],
  },
  {
    name: 'Scottish Cycling Group',
    days: [
      {
        day: 'Sunday',
        meeting: [
          {
            name: 'Meeting one',
            location: 'Test',
            startTime: '11.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
          {
            name: 'Meeting two',
            location: 'Test',
            startTime: '10.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
          {
            name: 'Meeting three',
            location: 'Test',
            startTime: '10.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
        ],
      },
      {
        day: 'Tuesday',
        meeting: [
          {
            name: 'Meeting one',
            location: 'Test',
            startTime: '10.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
          {
            name: 'Meeting two',
            location: 'Test',
            startTime: '10.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
          {
            name: 'Meeting three',
            location: 'Test',
            startTime: '10.00',
            address: 'Test Street',
            meetingLength: '1 Hour',
            city: 'Edinburgh',
          },
        ],
      },
    ],
  }

我有一个小组模型,一天模型和一个会议模型。

 belongs_to :day
 belongs_to :meeting

会议

has_many :groups

has_many :groups

我得到这个结果。

[
    {
        id: 1,
        name: "Scottish Stoics",
        created_at: "2018-03-19T11:47:50.818Z",
        updated_at: "2018-04-12T10:50:05.179Z",
        day_id: 7,
        meeting_id: 81
    },
    {
        id: 2,
        name: "Scottish Cycling Group",
        created_at: "2018-03-19T11:47:57.498Z",
        updated_at: "2018-04-11T22:13:26.656Z",
        day_id: 7,
        meeting_id: 83
    },
]

现在,我可以使用jbuilder来获取日期名称和会议名称,但是我不能做的是选择一天的多个会议,并为该组选择多个天。 这种数据结构在Rails中甚至可能成为可能吗?

如果我应该使用其他类型的关联,我无法解决,有人能为我阐明一些关联吗?

假设顶级嵌套对应于Group,您可以像这样形成关联:

has_many :meetings
belongs_to :group

会议

belongs_to :day

has_many :days
has_many :meetings, through: :days

虽然我有印象,在JSON中提供的应该是meetings而不是meeting以保持RESTful

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM