0

メタ質問モデルを使用してレポートを作成するレポートシステムを作成しています。基本的に、私は次のようないくつかの質問を含むテーブルを持っています:

変数テーブル:

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">
4

1 に答える 1

1

アクションでシンボルに"parameter"設定しているため、単純な文字列を受け取っているように見えます。@report_head_id:parameternew

newアクションでは、代わりに使用してみてください@report_head_id = params[:parameter]

于 2012-11-14T15:45:27.370 に答える