我想让我的应用的用户创建具有任意数量问题的在线民意调查。问题有两种:多选和开放式
我的想法是建立这样的东西:
Poll
has_many open_question
has_many multichoice_questions
在相关模型中使用适当的belongs_to
。
如何保存出现问题的顺序,以便在进行投票时可以重新创建?
我正在考虑序列化带有问题ID和类型的有序3D数组,但这感觉不对(它将相同的信息保存两次)。
Rails建模的方法是什么?
答案 0 :(得分:0)
如果是我,我会像这样设置我的模型:
User has_many Polls has_many OpenQuestions && MultichoiceQuestions
然后我可以这样做:
@user = current_user
@poll = @user.polls.find(params[:poll_id])
@open_questions = @poll.open_questions.order('created_at ASC')
或者,如果您觉得需要更多控制权,可以利用一些范围。
http://guides.rubyonrails.org/active_record_querying.html#scopes