0

Rails サイトで質問するためのサイト全体のフォームを追加しています。リソースの質問のモデル/ビュー/コントローラーは既に作成されています。question/new に移動すると、期待どおりのフォームが表示されます。ここで、サイト全体の質問フォームを表示したいと考えています (これとの唯一の違いは、必須フィールドのみが表示されることです)。質問: application_controller で新しい質問オブジェクトを作成し、それを rails form_forヘルパーに渡す必要がありますか、それとも新しい_form2パーシャル (質問ビューで) を作成し、それをサイト全体のテンプレートに含める必要がありますか?

ありがとうございました。

4

1 に答える 1

1

question_formフォルダーにパーシャルを作成views/sharedし、サイト全体のテンプレートから参照します。

編集: @question 変数の取得元への返信

私の考えでは、2 つのオプションがあります。変数を ApplicationController にロードできます。

class ApplicationController < ActionController::Base

  before_filter :load_question

  def load_question
    @question = Question.new
  end

  ...

end

(この場合、@question 変数との競合に注意する必要があります)

あるいは、ApplicationHelper でメソッドを作成することもできます。

module ApplicationHelper

  def question_form

    question = Question.new

    raw render 'shared/question_form', :question => question
  end

  ...
end

次に、パーシャルを参照する代わりに、ビューでヘルパーを参照します。

<%= question_form %>

この場合、パーシャル内の変数をローカル変数として参照する必要があるためquestion@question.

それが役立つことを願っています。

于 2013-01-16T04:48:46.863 に答える