Ruby on rails 如何包含来自复杂模块(paypal_)的类?
编辑 对不起,这还没有全部发布 我的控制器: 我有一个模块:Ruby on rails 如何包含来自复杂模块(paypal_)的类?,ruby-on-rails,module,paypal,Ruby On Rails,Module,Paypal,编辑 对不起,这还没有全部发布 我的控制器: 我有一个模块: module ActiveMerchant #:nodoc: module Billing #:nodoc: class PaypalPermissionsGateway < ActiveMerchant::Billing::Gateway # :nodoc ... def get_basic_personal_data ... end 我应该做什么?在您的模型顶部加载带有包含ActiveMerchant
module ActiveMerchant #:nodoc:
module Billing #:nodoc:
class PaypalPermissionsGateway < ActiveMerchant::Billing::Gateway # :nodoc
...
def get_basic_personal_data
...
end
我应该做什么?在您的模型顶部加载带有
包含ActiveMerchant::Billing
的模块,然后您应该能够执行@merchant。在您的模型顶部获取基本的个人数据
加载带有包含ActiveMerchant::Billing
的模块,然后您应该能够执行@merchant.get_basic_personal_data
您需要将模块与PayPermissionGateway
混合,尝试在模块定义后添加以下行:
PaypalPermissionGateway.send(:include, ActiveMerchant)
您可能需要更改类名以包含其名称空间。您需要将模块与
PayPermissionGateway混入尝试在模块定义后添加以下行:
PaypalPermissionGateway.send(:include, ActiveMerchant)
您可能需要更改类名以包含其名称空间。在您的问题中,您已经在控制器上定义了方法获取基本的个人数据,但您正试图从@merchant
实例调用它。但是get\u basic\u personal\u data
没有在您的商户
模型上定义,不能这样调用。您所做的工作相当于以下内容:
class A
end
class B
def method_b
...
end
end
a = new A()
a.method_b()
get_basic_personal_data(@merchant)
也就是说,它不会起作用
根据您的代码布局,您应该做的是:
class A
end
class B
def method_b
...
end
end
a = new A()
a.method_b()
get_basic_personal_data(@merchant)
默认情况下,在公开控制器的方法之前,您将无法从视图中访问这些方法。一种方法是使用helper\u方法
。例如:
class MerchantsController < ApplicationController
helper_method :get_basic_personal_data
...
def get_basic_personal_data merchant
...
end
end
class-MerchantsController
在您的问题中,您已经在控制器上定义了获取基本个人数据的方法,但您试图从@merchant
实例调用该方法。但是get\u basic\u personal\u data
没有在您的商户
模型上定义,不能这样调用。您所做的工作相当于以下内容:
class A
end
class B
def method_b
...
end
end
a = new A()
a.method_b()
get_basic_personal_data(@merchant)
也就是说,它不会起作用
根据您的代码布局,您应该做的是:
class A
end
class B
def method_b
...
end
end
a = new A()
a.method_b()
get_basic_personal_data(@merchant)
默认情况下,在公开控制器的方法之前,您将无法从视图中访问这些方法。一种方法是使用helper\u方法
。例如:
class MerchantsController < ApplicationController
helper_method :get_basic_personal_data
...
def get_basic_personal_data merchant
...
end
end
class-MerchantsController
我的理解是,您希望使方法获取基本的个人数据
,它是类PayPerpermissionGateway
的成员,可作为您的商户
模型的成员使用。这是正确的吗?我的理解是,您希望使方法获取基本的个人数据
,它是类PayPerpermissionGateway
的成员,可作为您的商户
模型的成员使用。这是对的吗?我希望这至少能让你找到正确的方向。对不起,我帮不上忙了。我希望这至少能帮你找到正确的方向。对不起,我帮不上忙了。