我試圖將我的應用程序與twitter API集成。使用Twitter API的Rails應用程序:未定義的方法`user'for nil:NilClass
這裏是我的步驟:
1:安裝了嘰嘰喳喳的寶石:gem 'twitter
2:抓住this代碼從嘰嘰喳喳的寶石文件並把它放在我的controller
內。我也嘗試將代碼放在helper
。
require 'twitter'
@client = Twitter::REST::Client.new do |config|
config.consumer_key = ENV["CONSUMER_KEY"]
config.consumer_secret = ENV["CONSUMER_SECRET"]
config.access_token = ENV["ACCESS_TOKEN"]
config.access_token_secret = ENV["ACCESS_SECRET"]
end
3)註冊我的Twitter的應用程序,並得到了consumer_key (AKA: API key)
,consumer_secret (AKA:API secret)
,access_token
和access_token_secret
。
我用config/application.yml
來存儲訪問令牌。這是正確的做法嗎?但願如此。我有<%= @client.user.username %>
。
我正在開發(localhost3000)。我的回調網址是http://127.0.0.1/
我也試圖組織我的代碼爲this answer暗示無濟於事。
我使用Rails 4.0.2
我測試的代碼在console
並可以正常使用。我嘗試了幾個查詢,包括上面顯示的一個:<%= @client.user.username %>
,他們都在工作。
但是當我發展我的代碼運行我得到這個錯誤:
undefined method `user'` for nil:NilClass.
我明白什麼錯誤意味着。但@client怎麼可能是零?當我在控制檯中運行它時,它不是零。我忘了什麼嗎?我將不勝感激任何建議。請讓我知道你是否希望我提供更多的信息/代碼。謝謝。
編輯:另外,試圖將上面的代碼以@client
開頭移動到config/initializers/twitter.rb
。獲取相同的錯誤信息。
是在'config/settings.yml'還是'config/initilizers/settings.yml'下? –
我將代碼移到了'config/settings.yml',並且在控制器中使用了你的代碼,但是現在我得到了新的錯誤:'未初始化的常量PostsController :: Settings'。任何想法? –
查看更新的答案:) – Peeyush