首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与rails形式的5个模型交互

与rails形式的5个模型交互
EN

Stack Overflow用户
提问于 2013-11-29 21:23:17
回答 1查看 170关注 0票数 1

我有一个表单,需要能够与5个(甚至更多)模型进行交互。其内容如下:

病人-需要建立病人的记录和细节(姓名,地址等)。

表单-跟踪表单名称和版本。

问题-跟踪每个表格上附加的问题。

答案-病人提出的问题的答案。

表单响应-跟踪填写表格的病人,以及表格的形式。

我已经创建了模型的布局,以及我认为数据是什么样子的:布局

在表单响应中,completed_by聚合关系考虑到用户、第三方或患者可以填写表单。

我被困在最好的方式去做这一切通过一种形式。现在,我正在浏览病人控制器和病人/新视图,因为我想象这一切都与病人相关。我只是不太确定如何在表单本身(form_for、form_tag、fields_or?)内嵌套所有这些嵌套。然后在控制器的创建操作中处理。即使经过了一堆铁路等,我还是很困。任何洞察力都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-29 21:56:43

这是我从这个问题中所能理解的。将有五种型号

病人,表格,问题,回答,形式反应

现在表格会有很多问题。一个问题会有很多答案。一份表格会有很多答案。

模型结构应该是

代码语言:javascript
复制
 class Patient < ActiveRecord::Base
  has_many :formresponses
 end

 class Form < ActiveRecord::Base
  has_many :questions
  has_many :formresponses
 end

 class Question < ActiveRecord::Base
  belongs_to :form
  has_many :answers
 end

 class Answer < ActiveRecord::Base
  belongs_to :question
 end

 class Formresponse < ActiveRecord::Base
  belongs_to :form
  belongs_to :patient
 end

现在您将有一个用于创建/编辑病人信息的表单,这应该很简单,因为没有嵌套。

表单的创建将是一个棘手的问题。存储类表单的属性将是非常简单的。要存储类问题的属性,需要在控制器中处理它们。创建表单元素,以便将名称绑定到“问题”。

例如,

代码语言:javascript
复制
 <input type="text" name="questions[0][name]" value="some name" />
 <input type="text" name="questions[0][help_text]" value="some help text" />

注-名称和help_text是模型问题的属性。

现在,在控制器中,您可以遍历params的每个值:问题,以获得工业形式的值。

所以,会有这样的情况

代码语言:javascript
复制
 params[:questions].each do |question|
   q = Question.new(question)
   @form.questions << q #This will append the question to your @form instance
 end
 ...
 @form.save

类似地,您也可以这样做来存储响应。我希望你现在能明白一点

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20293539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档