2016-04-22 61 views
0

我試圖將BitBucket的外部值保存到我的Rails應用程序,然後在視圖中返回它們(我是新的數據庫),所以如果有人可以幫助我,那我我真的很感激它。將外部JSON保存到數據庫(RAILS)

我返回從到位桶API調用我的控制器,所以它的效果很好。然後我創建模型bitbucket name:string message:text date:integer

所以,現在我把這個變成bitbucket.rb型號:

class Bitbucket < ActiveRecord::Base 
    def saveData 
     require 'bitbucket_rest_api' 
      bitbucket = BitBucket.new login:'...', password:'...' 

      repo = bitbucket.repos.commits.list '...', '...' 
      data = repo["values"] 

      data.each do |r| 
       r["author"]["user"]["display_name"] 
       r["message"] 
       DateTime.strptime(r["date"], '%Y-%m-%dT%H:%M:%S%z').strftime("%D %r") 
      end 
    end 
end 

這是第一次調用我想要保存到數據庫然後我想將每個新的提交保存到數據庫中。

非常感謝。

回答

2
  1. 您應該爲在Ruby中這樣的方法:save_data,不saveData其他任何事情。

  2. 你的方法應該是類方法,因爲你沒有在裏面使用任何對象。

  3. 您可以使用createnewsave鏈創建數據庫條目。

這可能幫助:

class Bitbucket < ActiveRecord::Base 
    def self.save_data 
    require 'bitbucket_rest_api' 
    bitbucket = BitBucket.new login:'...', password:'...' 
    repo = bitbucket.repos.commits.list '...', '...' 
    repo["values"].each do |r| 
     create(
     name: r["author"]["user"]["display_name"], 
     message: r["message"], 
     date: DateTime.strptime(r["date"], '%Y-%m-%dT%H:%M:%S%z').strftime("%D %r") 
    ) 
    end 
    end 
end 
+0

和控制器會像'@commits = Bitbucket.all'? 然後在視圖中'<%= @ bitbucket.name%>'等..? – liborza

+1

@LiborZahrádka'@ commits.name'例如。 –

+0

對不起錯誤的變量..我做了一個錯誤..好吧非常感謝 – liborza