C スタイルの構文の長い歴史から来て、Ruby (on Rails) を学ぼうとしている私は、そのイディオムなどに問題を抱えていましたが、今日、問題があるとは思っていなかったものにぶつかりました。目の前にあるに違いないものが何なのか見えない。
パス値から URI 値を導出するプライベート メソッドを含む Binary クラスがあります (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 が私が使用した他の言語と著しく異なることをしない限り、同じクラス内からプライベート メソッドを呼び出すことができると期待しています。
ありがとう。