【发布时间】:2016-06-17 21:36:27
【问题描述】:
我对 Ruby on Rails 比较陌生。
我有一个用户可以创建表单的应用。 我已经声明了用户 has_many forms 和 forms belongs_to user。
此外,Forms 有一个嵌套模型Item,代表Form 的问题,允许用户制作一个Form 有多个问题。此外,Item has_many Answers,因此一个问题可以有多个答案(例如单选或复选框类型的问题)。最后,一个 Answer has_many Results 允许为每个答案存储多个值,如果它是由不同的人提交的。
用户也有 Children,我希望他们应用他们创建的 Forms。
我怎样才能做到这一点? 您是否建议在我的 Child 模型和 Form 模型之间创建关联?
你会怎么做?
所以我只需要让一个user 创建的forms 可以为用户的每个孩子回答。
更新:
于是我想出了以下想法:
在form 和children 之间创建一个连接表,以映射哪些表单应用于哪个孩子。
此外,result 模型应该有一个 answer_id 列作为它响应的答案。而且我猜它需要另一列来指向上面连接表的id 来映射form-child 属于哪个。
¿你认为这个逻辑对吗?
当显示要使用的表单时,我计划显示form.title,通过每个项目循环进入他们的项目并显示其item.title,然后再次通过每个答案循环进入其答案并显示其类型和标签每个结果的form_fields 的字段类型和标签。
现在的问题是我该如何做到这一点?
我知道如何创建和保存特定数量的Objects,但不知道动态数量的对象。
代码:
form.rb
belongs_to :user
has_many :items, dependent: :destroy
accepts_nested_attributes_for :items, allow_destroy: true
item.rb
belongs_to :form
has_many :answers, dependent: :destroy
accepts_nested_attributes_for :answers, allow_destroy: true
answer.rb
belongs_to :item
【问题讨论】:
标签: ruby-on-rails