Catarseプロジェクト用のStripe支払いエンジンを作成しています。プロジェクトの所有者であるユーザーからユーザーのプロジェクトにコピーする必要のあるレコードが3つあります。しかし、私は初心者なので、コードはS&%#teのように見えます!
#project_controller.rb
def create
...
check_for_stripe_keys
....
end
def show
...
check_for_stripe_keys
....
end
....
def check_for_stripe_keys
if @project.stripe_userid.nil?
@project.reload
@project.stripe_access_token = @project.user.stripe_access_token.dup
@project.stripe_key = @project.user.stripe_key.dup
@project.stripe_userid = @project.user.stripe_userid.dup
elsif @project.stripe_userid != @project.user.userid
@project.stripe_access_token = @project.user.stripe_access_token.dup
@project.stripe_key = @project.user.stripe_key.dup
@project.stripe_userid = @project.user.stripe_userid.dup
end
@project.save
end
....
私のストライプコードはエンジンであるため、これら3つのレコードのみが必要です。三つのこと:
1)最初はupdate_attributesを使用しようと思っていましたが、そのメソッドで.dupを使用できるかどうかわかりません。
2)これをmain_appにアクセスできるエンジンにあるヘルパーに入れて、ユーザーがmain_appproject_controllerコードを編集する必要がないようにすることは可能ですか?
3)上記の.dupコードを表示するためのよりクリーンな方法はありますか?醜いから!
ご協力いただきありがとうございます!