ruby-on-rails - 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 视图中的嵌套表单。
解决方案
你会想accepts_nested_attributes_for
要这样做。
它允许您通过将适当的属性传递给您的 API 端点来创建相关模型。
推荐阅读
- c# - c++/WinRT 组件代码中的断点未触发
- reactjs - Module not found: Error: Can't resolve 'core-js/fn/array' React Webpack
- r - R中的多行文本摘要
- facebook - 如果我不属于我,我想通过他们的(posts') id 获取帖子的用户名。那么,我该怎么做呢?
- flutter - Flutter 中的 `Future.delayed(Duration.zero, ...)` 和 `SchedulerBinding.instance.addPostFrameCallback(...)` 有什么区别?
- r - R:在同一个图上绘制一条线和水平条形图
- javascript - 应用脚本中两个数组的求和(Google 表格)
- c++ - 为什么“int const B::bsm1a;” 不考虑重新定义?
- javascript - 使用javascript函数过滤数据返回
- c# - 如果我的数据源是 memoy,我如何在部署期间将我的 sqlite 数据库添加到我的应用程序中