Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何包含来自复杂模块(paypal_)的类?_Ruby On Rails_Module_Paypal - Fatal编程技术网

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
的成员,可作为您的
商户
模型的成员使用。这是对的吗?我希望这至少能让你找到正确的方向。对不起,我帮不上忙了。我希望这至少能帮你找到正确的方向。对不起,我帮不上忙了。