ActiveRecord
を呼び出せるように、Salesforce 用の のようなインターフェースを作成したい
class Account < Salesforce::Model
end
Account.find_by_FirstName()
自分の関数を使用するようなメソッドを呼び出すことができmethod_missing
ます。
ただし、Salesforce への接続は、ユーザー名とパスワード、および oauth の 2 つの方法で行うことができます。ユーザー名/パスワードが使用されている場合は、ファイルに定義してsalesforce.yml
自動的にロードできます。しかし、oauth では、各ユーザーがこれを定義するため、それを行うことはできません。Account.new('oauth', oauth_parmas)
またはでクラスを初期化したくありませんAccount.new('username','password','sec_token')
が、ルールに基づいてどちらを使用するかをモデルに決定させ、どちらかが存在するかどうかを確認します。
これを実装する方法はありますか?言い換えれば、現在のユーザーが現在のoauth
トークンを持っているかどうか、またはユーザー名/パスワードが定義されているかどうかをモデルが知る方法はありますか?
さらに、これを Rails アプリで使用する場合、ユーザーはアプリの起動後にログインするため、oauth
トークンはアプリケーションの起動後に定義され、複数のユーザーごとに異なります。たとえば、私が を呼び出したとAccount.find_by_FirstName('John')
しAccountController#Show
ます。Account モデルで、oauth
尋ねられることなくトークンまたはユーザー名/パスワードを使用するようにします。show
また、コントローラーのメソッドで直接接続を確立したくありません。2 つの質問があります。
- これをどのように実装しますか?コントローラーでa を使用する必要
before_filter
がありますか、またはこれをアプリケーション全体に実装する方法はありますか? - 複数のユーザーが Salesforce に接続している場合、アプリケーションで問題が発生しますか? つまり、接続は動的であるため、接続が別のユーザーによって使用されていることを心配する必要がありますか?