1

処理しようとしているマルチステージフォームがあります。後のステージの 1 つは、前のステージで設定されたデータを使用する必要があります。インスタンス変数に必要なデータを設定することで、たとえば

@gateway = importer.get_gateway

次に、同じコントローラークラスの別のコントローラーメソッドでアクセスできます。

Rails.logger.info "populate_devices : gateway is #{@gateway}"

ただし、ログに@gatewaynil、フォーム送信の次のステップがあります。それは機能しているはずですか、それとも同じコントローラー クラス内の 1 つのコントローラー メソッドから別のコントローラー メソッドにデータを渡す正しい方法ではありませんか? UI にいくつかのフィールドを表示し、ログに記録したため、前のステップで@gatewayは間違いなく not に設定されています。nil

4

1 に答える 1

4

Rails はステートレスなテクノロジなので、セッションに保存する必要があると思います。サイズには制限がありますが、Cookie セッション ストア (最大 4k) の使用を選択した場合のみです。

ActiveRecord セッション ストアまたは memcached ストアを使用する場合、制限はありません。それらは実装が簡単で高速です。

于 2013-01-13T20:27:45.150 に答える