2016-04-22 62 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