Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:问卷应用程序的模型设计_Ruby On Rails_Ruby_Activerecord_Model - Fatal编程技术网

Ruby on rails Rails:问卷应用程序的模型设计

Ruby on rails Rails:问卷应用程序的模型设计,ruby-on-rails,ruby,activerecord,model,Ruby On Rails,Ruby,Activerecord,Model,我对rails很陌生。我目前正在开发这个问卷应用程序,它每几个月打开一次。用户给出的答复将保存在数据库中进行几轮调查,然后存档并删除 管理员可以查看答复,并为下一轮调查修改现有的调查问题列表。管理员在users表下有一个固定用户帐户,因为我目前正在使用Desive进行身份验证 我无法理解的是,我如何使修改问题成为可能,而不影响以往问卷调查的现有回答。我曾想过重复这些问题,但由于我对rails缺乏了解,我不太确定如何实现它 这是我提出的当前模型: class Questionnaire <

我对rails很陌生。我目前正在开发这个问卷应用程序,它每几个月打开一次。用户给出的答复将保存在数据库中进行几轮调查,然后存档并删除

管理员可以查看答复,并为下一轮调查修改现有的调查问题列表。管理员在users表下有一个固定用户帐户,因为我目前正在使用Desive进行身份验证

我无法理解的是,我如何使修改问题成为可能,而不影响以往问卷调查的现有回答。我曾想过重复这些问题,但由于我对rails缺乏了解,我不太确定如何实现它

这是我提出的当前模型:

class Questionnaire < ApplicationRecord
  has_many :responses
end

class Response < ApplicationRecord
  belongs_to :questionnaires
  belongs_to :users
  belongs_to :questions
end

class Question < ApplicationRecord
  has_many :responses
end

class Users < ApplicationRecord
  has_many :responses
end
课堂问卷
为什么要修改问题?如果进行下一轮调查,只需创建新的调查

此外,在您的模型中,您不能使用复数名称编写
所属
,因为您将遇到错误,请参阅以了解更多详细信息。

我建议在每轮调查后从数据库导出问题和答案,这样,您就可以在以后修改问题,而不必担心维护旧的问题/答案关系

它可以(例如)导出到数据库转储文件或CSV文件(营销部门喜欢这些文件)。导出到ruby中的文件并不复杂,我认为您可以找到很多这样做的资源。例如,对于CSV导出,请查看


祝你好运

@zhenbin我建议你使用一些东西,比如act_as_版本化的gem,它可以在问题发生变化时保留版本。因此,当新用户进行调查时,会拉取最新的问题,但当调查答复被拉取时,会拉取相应的问题

这是因为同一组问题可能会在多轮调查中使用。我已经查看了acts as版本的gem,它看起来很有希望!我试试看!谢谢:D