我对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
答案 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来保持版本随着问题的每一个变化。因此,当新用户提供调查时,最新问题被拉出,但当调查回复被拉动时,其拉出相应的问题