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 に接続している場合、アプリケーションで問題が発生しますか? つまり、接続は動的であるため、接続が別のユーザーによって使用されていることを心配する必要がありますか?