Rails 4 API: 创建嵌套资源

Rails 4 API: Creating a nested resource

我有 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 控制器。在我的应用程序中,用户可以将 mood 添加到 repositioning 并将数据发送到我的 API 为:

repositioning: { mood: mood_id }

是否有生成必要的 repo_mood 条目的简单方法:

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

不用手动调用?我在想 Rails 视图中的嵌套表单。

您需要 accepts_nested_attributes_for 执行此操作。

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