以下のコードでプライベートメソッドcheck_url
にアクセスできないのはなぜですか?内部クラスからプライベートメソッドにアクセスできませんか?
class Link < MyModel
# whitelist fields for security
attr_accessible :is_valid,
:url
# validations
validates :is_valid, :inclusion => { :in => [true, false] }
validates :url, :presence => true
# ===============================================================
# = class methods (accessible from outside without an instance) =
# ===============================================================
class << self
def is_url_valid(url)
unless link = Link.find_by_url(url)
link = Link.create!(:url => url, :is_valid => check_url(url))
end
link.is_valid
end
end
# =====================
# = Private functions =
# =====================
private
# Checks if url is broken
def check_url(url)
# do stuff
end
end
PS。私もself.check_url
を使ってみましたが、うまくいきませんでした。
コードは既にありますが、動作しません。 'self.check_url'と' check_url'の両方を試しました – user1049097
私の答えが更新されました。 – miaout17
ありがとうございます。それはうまくいった - 私は、それが自己参照クラスに含まれていない限り、私は基本クラスからプライベート関数にアクセスすることができなかったのか分からなかった。 – user1049097