在 Rails 應用程式中定義了一個 ad hoc 類
class TwitterClient
BASE_URL = 'https://api.twitter.com/2/'
def initialize(twitter_account)
@twitter_account = twitter_account
Rails.logger.info @twitter_account.inspect
end
def me
path = BASE_URL.to_s 'users/me'
get path
end
private
def get(path)
request(:get, path)
end
end
通過控制臺驗證,可以創建物件
c = TwitterAccount.first
=>
#<TwitterAccount:0x00000001086c5c10
但是,me在該物件上呼叫該方法會c.me回傳錯誤:
.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/activemodel-7.0.4/lib/active_model/
attribute_methods.rb:458:in `method_missing': undefined method `me' for #<TwitterAccount
這是哪里錯了?
uj5u.com熱心網友回復:
我不妨把它作為幫助其他開發人員的答案,
c似乎不是 的TwitterClient但的實體TwitterAccount。如果你想訪問TwitterClient類中的方法,你需要創建它的一個實體:
twitter_client = TwitterClient.new(twitter_account)
然后您可以訪問以下me方法:
twitter_client.me
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/525751.html
標籤:轨道上的红宝石红宝石
