0

私のコントローラーには次のものがあります:

テストコントローラー

def show_result

  @myObject = Object.where(.....)
end

def export_result
  .....
end

同じクエリを再度実行せずに、同じオブジェクト @myObject を使用してビューから "export_result" メソッドを呼び出すにはどうすればよいですか?

4

1 に答える 1

0

最初にインスタンス変数を理解する必要があると思います。オブジェクトが破棄されると、インスタンス変数も破棄されます。つまり、@myObject 変数はアクション (リクエスト) ごとに使用できます。

答え: 1. コールバックを使用すると、単純なメソッドを作成してレンダリングを準備し、それを呼び出すことができます。

    before_filter :load_object, only: [:show_result, :export_result]

    def load_object
      @myObject = Object.where(...)
    end
  1. export_result で show_result メソッドを呼び出します。show_result にレンダリング コードまたは export_result メソッドで使用されないその他のコードがある場合、これは適切なメソッドではありません。
于 2013-11-09T13:24:25.907 に答える