0

我想让我的应用程序的用户能够创建具有任意数量问题的在线民意调查。问题有两种形式:多项选择和开放式

我的想法是构建这样的东西:

Poll
  has_many open_question
  has_many multichoice_questions

与适当belongs_to的关联模型。

我如何才能保存问题出现的顺序,以便在进行民意调查时可以重新创建它?

我正在考虑用问题 id 和类型序列化一个有序的 3D 数组,但这感觉不对(它保存了两次相同的信息)。

对此建模的 Rails 方法是什么?

4

1 回答 1

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

于 2013-05-15T17:38:14.873 回答