RubyonRails在模型之间怎么共享方法?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

如果我的几个模型有一个隐私列,有没有办法我可以写出所有模型共享的一个方法,我们称之为“is_public?”

所以,我想object_var.is_public?

提问于
用户回答回答于

一种可能的方法是将共享方法放在module像这样(RAILS_ROOT/lib/shared_methods.rb

module SharedMethods
  def is_public?
    # your code
  end
end

那么你需要在每个应该有这种方法的模型中包含这个模块(即app/models/your_model.rb

class YourModel < ActiveRecord::Base
  include SharedMethods
end

用户回答回答于

也可以通过从包含共享方法的共同祖先继承模型来完成此操作。

class BaseModel < ActiveRecord::Base
  def is_public?
    # blah blah
   end
end

class ChildModel < BaseModel
end

扫码关注云+社区