在rails中复制对象方法

时间:2017-03-10 04:35:10

标签: ruby-on-rails ruby object web

我有一个rails引擎,它使用消费应用程序中的 current_person 对象。引擎调用 current_person.name

我需要复制这个对象,以便我可以为我的引擎创建一个独立的虚拟应用程序。如何在我的虚拟应用程序中定义 current_person 对象,以便我的引擎在从虚拟应用程序运行时正确选取 current_person.name

1 个答案:

答案 0 :(得分:0)

我假设您在虚拟应用中没有User模型?

如果您只需要访问current_person上的属性,那么您可以使用OpenStruct模拟虚拟应用中的Person对象(请参阅https://ruby-doc.org/stdlib-2.4.0/libdoc/ostruct/rdoc/OpenStruct.html

例如:

def current_person
  OpenStruct.new( name: 'Test User', email: 'somewhere@whatever.xyz' )
end

# usage
current_person.name  # => 'Test User'