2 つの個別の Rails アプリケーション (アプリ a、アプリ b) があります。これらのアプリはどちらも顧客リストを保持しています。1 日に 1 回レーキ タスクを実行し、アプリ b でアプリ a から選択した顧客を取得したいと考えています。
これは私がこれを解決しようとした方法です。間違った道を進んでいる場合は、お知らせください。
JBuilder を使用して JSON を生成しています
私の問題は、アプリ B がアプリ A に ID を設定して、顧客が既に転送されていることをシステムが認識できるようにする方法にあります。
顧客リストを取得するために行ったことと同様の put リクエストを行う必要があると想定していますが、それを機能させるのに問題があります。
アプリ A
顧客モデル
scope :for_export, :conditions => {:verified => true, :new_system_id => nil ...}
顧客コントローラー
skip_before_filter :verify_authenticity_token, :only => [:update]
#
def index
@customers = Customer.for_export
end
def update
@customer = Customer.find(params[:id])
if @customer.update_attributes(params[:customer])
render :text => 'success', :status => 200
end
end
アプリ B
レーキタスク
task :import_customers => :environment do
c = Curl::Easy.new("http://domain.com/customers.json")
c.http_auth_types = :basic
c.username = 'username'
c.password = 'password'
c.perform
a = JSON.parse(c.body_str)
a.each do |customer|
customer = Customer.create(customer)
#put request back to server a to update field
end
end
終了 終了
私が持っているものは現在機能していますが、これが正しい方法であるかどうか、また顧客コントローラーで update メソッドを呼び出す put リクエストを開始する方法がわかりません。
ありがとう!
ライアン