Rails - 如何订购多个关联?

时间:2013-05-15 16:57:42

标签: ruby-on-rails-3

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

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

Poll
  has_many open_question
  has_many multichoice_questions

在相关模型中使用适当的belongs_to

如何保存出现问题的顺序,以便在进行投票时可以重新创建?

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

Rails建模的方法是什么?

1 个答案:

答案 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