2016-04-22 3 views
0

BitBucketの外部値をRailsアプリに保存してからビューに戻そうとしています(データベースが新しくなっています)。本当に感謝します。外部JSONをデータベースに保存する(RAILS)

私は、私は今、私はbitbucket.rbモデルにこれを置くモデルのでbitbucket name:string message:text date:integer

を作成..もその作品のように、私のコントローラ内のBitbucketからAPI呼び出しを返さ:

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 

これは、私はDBに保存する最初の呼び出しをし、私はデータベースにすべての新しいコミットを保存したいと思います。

ありがとうございます。

答えて

2
  1. 次のようなRubyでメソッドに名前を付ける必要があります。他の何かにsave_data、ないsaveDataを。

  2. あなたのメソッドは、内部でオブジェクトを使用していないので、クラスメソッドである必要があります。

  3. createまたはnewsaveチェーンでデータベースエントリを作成できます。

これは役立つかもしれない:

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

関連する問題