gpt4 book ai didi

ruby - Ruby on Rails 中的服务对象模式

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:18 25 4
gpt4 key购买 nike

我正在尝试开发一个服务类来在我的 Rails 应用程序中提供支付服务,但它不起作用。

服务类(lib/paypal_service.rb)(不确定是否应该放在这里,我在一些帖子中看到了):

class PaypalService
attr_reader :api #, :express_checkout_response

def initialize()
@api = PayPal::SDK::Merchant::API.new
end

def test()
puts "Congratulations, you have called test"
end
end

Controller (使用服务):

class BookingsController < ApplicationController
include BoatsHelper
require 'paypal_service'

def create
PaypalService.test
end

...

在输出中我得到:

 NoMethodError (private method `test' called for PaypalService:Class):

最佳答案

是因为你调用的是类方法,但是你定义了实例方法。

把你的 Controller 改成这个

def create
PaypalService.new.test
end

或者定义一个类方法并让你的 Controller 保持原样

class PaypalService
attr_reader :api #, :express_checkout_response

def initialize()
@api = PayPal::SDK::Merchant::API.new
end

def self.test
new.test
end

def test()
puts "Congratulations, you have called test"
end
end

关于ruby - Ruby on Rails 中的服务对象模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22327763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com