0

アプリのユーザーが、任意の数の質問があるオンライン投票を作成できるようにしたいと考えています。質問には、選択式と自由回答式の 2 種類があります。

私の考えは、次のようなものを構築することです:

Poll
  has_many open_question
  has_many multichoice_questions

belongs_to関連するモデルで適切に。

質問が表示される順序を保存して、投票が行われたときに再作成できるようにするにはどうすればよいですか?

順序付けされた 3D 配列を質問 ID とタイプでシリアル化することを考えていますが、それは間違っているように感じます (同じ情報を 2 回保存しています)。

これをモデル化する 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 に答える