1

私は、ユーザーが質問を作成できるようにするアプリを構築しています。タイプは、True/False、Single および Multiple Choice です。だから、私はいくつかのモデルを作成しました:

class QuestionType < ActiveRecord::Base
  attr_accessible :name, :shorcut
end

class Question < ActiveRecord::Base
  attr_accessible :content, :mark, :topic_id, :question_type_id, :answers_attributes
  belongs_to :topic
  belongs_to :user
  belongs_to :question_type
  has_many :answers, dependent: :destroy
  accepts_nested_attributes_for :answers
end

class Answer < ActiveRecord::Base
  attr_accessible :content, :question_id, :correct

  belongs_to :question
end

ここで、質問のインデックス ページを作成し、3 つのタイプの質問に質問を追加するための 3 つのリンクを作成します。ユーザーがリンクをクリックすると、ページに移動して質問を作成し、ページにはその質問のタイプに適したフォームが表示されます。質問コントローラーで、質問タイプIDを保存して質問に保存したいです。
アドレスは次のようになっていると思います。

http://example.com/questions/index : インデックス ページには、質問を作成するための 3 つのリンクがあります。

http://example.com/question_types/1/questions/new : True/False の質問の部分的な形式をレンダリングします

http://example.com/question_types/2/questions/new : 単一選択問題の部分的な形式をレンダリングします

http://example.com/question_types/1/questions/new : 多肢選択問題の部分的な形式をレンダリングします

上記のタイプのリンクを作成するには、質問タイプと質問モデルを使用してルートにネストされたリソースを配置する必要があると思いますが、上記のようにビューと分離を構築する方法がわかりません。私を助けてください、またはアイデアを教えてください。それを行うためのより良い方法:(

4

1 に答える 1

1

あなたの質問の私の理解により、これはあなたの質問を解決するかもしれません:

app/views/questions/new.html.erb では、次のようにできます。



    case params[:question_type_id]
    when 1
    render :partial=>"/questions/new_true_false_question"
    when 2
    render :partial=>"/questions/new_single"
    when 3
    render :partial=>"/questions/new_multi"
    end

次に、上記のように、または任意の名前で 3 つのパーシャルを作成します。

または、render :partial を render :template に変更することで、コントローラーで実行できます。

:)

于 2012-10-29T16:23:02.003 に答える