私は自分のプロジェクトの 1 つで Padrino フレームワークを試してきましたが、本当に悩ましいことが 1 つあります。たとえば、OmniAuth を使用してユーザー登録プロセスを実装し、リクエスト ハンドラー (コントローラーのアクション) を分割して、次のようにメソッドを分離したいと考えています。
get ":provider/callback" do @user = find_the_user_by_oauth(リクエスト) @userでない限りcreate_user store_user_in_session 終わり def find_the_user_by_oauth(リクエスト) #... 終わり def store_user_in_session session[:user_id] = @user.id 終わり
ロジックをモデルレイヤーにプッシュする方が良いことはわかっていますが、私の質問は、コントローラーロジックを分割してメソッドを分離し、それらの間で情報を共有するにはどうすればよいか (インスタンス変数を使用するなど) です。Rails では、コントローラーのプライベート スコープでこれらのメソッドを作成しましたが、ここでは Application クラスを拡張する必要があります。これは、前のコードに対して未定義のメソッド例外がスローされるためです。ヘルパーを試してみましたが、ヘルパーはインスタンス変数を知らないので、毎回変数を渡す必要があります。
Padrino でコントローラーのアクションをクリーンにする良い方法は何ですか?