代码之家  ›  专栏  ›  技术社区  ›  Jeremy Thomas

Rails 4 API:创建嵌套资源

  •  1
  • Jeremy Thomas  · 技术社区  · 6 年前

    我有三种型号:

    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视图中的嵌套表单。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Daniel Westendorf    6 年前

    你会想要 accepts_nested_attributes_for 这样做。

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