メタ質問モデルを使用してレポートを作成するレポートシステムを作成しています。基本的に、私は次のようないくつかの質問を含むテーブルを持っています:
変数テーブル:
id | name | variable_type | description | breakpoint | time_frequency
これで、レポートの時間頻度などに応じて、システムがレポートの質問を作成します。
レポートを保存するために、2つのテーブルがあります。
report_bodiesテーブル:
variable_id | report_id | value
report_headsテーブル
id | email | name
このアプローチでは、レポートを作成し、そのIDを使用してそのレポートの質問に対する回答を保存する必要があります。
report_headsコントローラーでafter_filterを実行して、作成したばかりのIDを次の関数に渡すようにしました。
after_filter :go_to_report, :only => :create
最後に私の空のgo_to_report関数
def go_to_report
#what to do here?
end
前もって感謝します。
アップデート
だから、私はこれでreport_headの作成から直接report_bodiesの新しい関数を呼び出すことができることを発見しました:
format.html { redirect_to :new_report_body, notice: 'Report head was successfully created.', :parameter => @report_head.id }
そして、report_bodiesの新しい関数は次のとおりです。
def new
@report_head_id = :parameter
@report_questions = getDailyVariables
@report_body = ReportBody.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @report_body }
end
end
ただし、ビューでreport_headのIDを受信しておらず、代わりに単純な文字列を受信している場合
<!-- code from the view (_form.html.erg): -->
<%= builder.hidden_field :report_id, :value => @report_head_id %>
<!-- rendered view: -->
<input id="report_bodies_report_id" name="report_bodies[report_id]" value="parameter" type="hidden">