首页 > 解决方案 > Rails 4 API:创建嵌套资源

问题描述

我有 3 个模型:

class Repositioning < ActiveRecord::Base
    has_one :repo_mood
    has_one :mood, through: :repo_mood
end

class Mood < ActiveRecord::Base
    has_many :repo_moods
    has_many :repositionings, through: :repo_moods
end

class RepoMood < ActiveRecord::Base
    belongs_to :repositioning
    belongs_to :mood
end

但我只有一个Repositionings控制器。在我的应用程序中,用户可以添加 amood并将repositioning数据发送到我的 API,如下所示:

repositioning: { mood: mood_id }

是否有一种生成必要repo_mood条目的方法:

RepoMood.create(repositioning_id: repositioning.id, mood_id: mood_id)

无需手动调用它?我在想像 Rails 视图中的嵌套表单。

标签: ruby-on-railsapiruby-on-rails-4has-one-through

解决方案


你会想accepts_nested_attributes_for要这样做。

它允许您通过将适当的属性传递给您的 API 端点来创建相关模型。


推荐阅读