来自 C 风格语法的悠久历史,现在正在尝试学习 Ruby(在 Rails 上),我一直在其习语等方面遇到问题,但今天我遇到了一个我没想到会遇到问题的问题并且我看不到必须在我面前的任何东西。
我有一个 Binary 类,它包含一个从路径值派生 URI 值的私有方法(uri 和路径是类的属性)。我self.get_uri_from_path()
从内部打电话Binary.upload()
,但我得到:
Attempt to call private method
模型的片段如下所示:
class Binary < ActiveRecord::Base
has_one :image
def upload( uploaded_file, save = false )
save_as = File.join( self.get_bin_root(), '_tmp', uploaded_file.original_path )
# write the file to a temporary directory
# set a few object properties
self.path = save_as.sub( Rails.root.to_s + '/', '' )
self.uri = self.get_uri_from_path()
end
private
def get_uri_from_path
return self.path.sub( 'public', '' )
end
end
我打错电话了吗?我是否错过了其他更基本的东西?唯一Binary.get_uri_from_path()
被调用的地方——目前——是Binary.upload()
。我希望能够从同一个类中调用私有方法,除非 Ruby 所做的事情与我使用的其他语言明显不同。
谢谢。