在主Rails应用程序中重新打开插件模型

时间:2011-02-10 17:45:23

标签: ruby-on-rails

插件提供了一个名为User的模型。是否可以在我的应用程序中重新打开它?

如果我创建app/models/user.rb并在那里尝试,则会覆盖整个模型,并且原始插件方法不再可用。

1 个答案:

答案 0 :(得分:1)

这是我到目前为止找到的唯一方法:

# app/models/plugin_user.rb
class PluginUser
  def self.load
    User.class_eval do
      # my code here
    end
  end
end

# plugin model:
class User
  # ...
end

PluginUser.load

如果有一种方法可以在不修改插件代码的情况下这样做会很好。在这种情况下,它并不重要,因为插件是我的,但如果我需要对另一个插件执行相同操作,我需要将其分叉。