【问题标题】:Has and belongs to many Rails API POST request拥有并属于许多 Rails API POST 请求
【发布时间】:2018-04-26 11:55:01
【问题描述】:

目前我有一个与 Rails 5 API 通信的 ReactJS 应用程序。

作为其中的一部分,React 应用程序向api/v1/job 发出单个 JSON POST 请求以创建新的作业记录。此请求包括与工具和技术的两个 HABTM 关系的信息。

Job - has_and_belongs_to_many :technologies

Job - has_and_belongs_to_many :tools

如何使用与作业、技术和工具相关的 ID 更新 rails 控制器中的适当连接表?

请求如下所示,其中数字是 ID:

{
   "job" : {
     ...
     "technologies" : [ "1", "6", "9" ],
     "tools" : [ "3", "5" ],
     ...
   }
}

值得一提的是,请求是作为带有 JSON 数据的 axios POST 请求发送的,因此没有传统的表单字段。

我也可以像@technologies = params[job][technologies] 那样在我的控制器中成功访问参数,我只是不确定下一步要创建记录:)

【问题讨论】:

  • 我认为这应该可行:job << Technology.where(id: params['job']['technologies']),考虑到您已经有一个 job 对象,这将在连接表中创建记录。

标签: ruby-on-rails reactjs api post has-and-belongs-to-many


【解决方案1】:

我最终得到了以下结果

@job['technology_list'].each do |tech|
    technology = Technology.find(tech['id'])
    @new_job.technologies << technology
end

在这种情况下,@new_job 是刚刚在控制器中创建的作业。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多