我正在为 Catarse 项目创建一个 Stripe 支付引擎。我需要将三条记录从我的用户(项目所有者)复制到我的用户项目。但是因为我是初学者,所以代码看起来像 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
....
我只需要这三个记录,因为我的条带代码是一个引擎。三件事:
1)最初我想用户 update_attributes 但我不知道是否可以在该方法中使用 .dup 。
2)是否可以将它放在位于 main_app 可访问的引擎中的帮助程序中,这样用户就不必编辑 main_app project_controller 代码?
3) 是否有更简洁的方式来显示上述 .dup 代码?因为太丑了!
谢谢你的帮助!