2016-04-22 4 views
0

Я пытаюсь сохранить внешние значения из BitBucket в мое приложение Rails, а затем вернуть их в виде (я новичок в базе данных), поэтому, если кто-то может мне помочь в этом, я Я действительно ценю это.Сохранение внешнего JSON в базе данных (RAILS)

Я вернулся API вызова из BitBucket в моем контроллере поэтому его хорошо работает .. Тогда я создать модель 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. Вы можете создать запись в базе данных с помощью create или new, save цепь.

Это может помочь:

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%>' etc ..? – liborza

+1

@ LiborZahrádka '@ commits.name' Например. –

+0

Да, извините, неправильная переменная .. я сделал ошибку .. хорошо спасибо большое – liborza

Смежные вопросы