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

时间:2017-03-27 07:41:31

标签: ruby-on-rails ruby activerecord model

我对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

3 个答案:

答案 0 :(得分:0)

为什么要修改问题?如果您进行下一轮调查,只需创建新调查。

此外,在您的模型中,您无法使用复数名称编写belongs_to,因为您会收到错误,请参阅http://guides.rubyonrails.org/association_basics.html#the-belongs-to-association了解详情。

答案 1 :(得分:0)

我建议在每轮调查后从数据库中导出问题和答案,这样你就可以随时修改问题而不必担心维持较旧的问题/答案关系。< / p>

它可以(例如)导出到数据库转储文件或CSV文件(营销部门那些)。导出到ruby中的文件并不复杂,我认为您将能够找到许多资源。例如,对于CSV导出,请查看CSV class

祝你好运!

答案 2 :(得分:0)

@zhenbin我建议你使用一些东西作为act_as_versioned gem来保持版本随着问题的每一个变化。因此,当新用户提供调查时,最新问题被拉出,但当调查回复被拉动时,其拉出相应的问题