サイトの相互作用は、ユーザーの入力に基づいています。例えば、ユーザが支払い方法として「VISA」を選択した場合、彼はクレジットカード番号を要求する別のコントローラ/アクションにリダイレクトされる。ユーザーが「Paypal」を選択した場合、外部Webサイトにリダイレクトされます。このRailsの状況で使用する最良のRubyパターンは何ですか?
すべてのロジックをアクション自体に入れるのではなく、拡張性のためにオブジェクト内で抽象化することを考えています。例。
class Payment < ActiveRecord::Base; end
class VisaPayment < Payment
def process
...
end
end
class PaypalPayment < Payment
def process(controller)
...
controller.redirect_to "http://paypal.com"
end
end
class OrdersController < ApplicationController
def accept
params[:select].constantize.new.process(self)
end
end
"redirect_to"のようなメソッドが保護されているため、これは機能しません。このような代表団のためのイディオムや共通のパターンはありますか?
p.s.上記のコードは、私がモジュールにそれを入れて、ケース・スイッチを介して右の方法を実行してしまう、本当に想像力ではなく、任意の実際のコーディング
私はモデルからコントローラコードを呼び出さないことにしました。あなたのコードの設計は私にとって非常に面白いです..ありがとう! – alanho