从类调用私有方法

时间:2015-09-18 16:12:58

标签: ruby-on-rails ruby

我有一个Ruby类方法,我想使用此类对象的私有方法,但Rails会抛出错误。

具体情况是:我有一个模型类团队。我定义了

def self.to_csv(**options)
    # blah blah blah
    teams = self.all
    teams.each do |team|
         csv_row = team.export_as_csv_row #a private method
         # and it failed here
    end
end

我正在使用Ruby 2.2.1和Rails 4.2。如果我不能这样做,是否有任何方法可以保护export_as_csv_row免受其他课程的影响?

1 个答案:

答案 0 :(得分:3)

您可以使用Object#send方法轻松调用任何实例上的私有方法:

team.send :export_as_csv_row

Object#send文档中提供了更多详细信息。