Rails 不断更新数据库(外部值)
Rails updating DB constantly (external values)
我想问一下是否有任何方法可以将数据库从外部源更新到我的 Rails DB 不断(每 1 小时)...
我正在尝试这样做,但是当我这样做时,我的数据库被复制并添加了新文件,所以是否有任何 if
声明我可以在哪里添加新值?
- 我正在从 BitBucket 中提取数据库 (JSON)(提交)
- 然后我将其保存到我的 Rails 数据库中并返回视图。
- 我试过那个用途 whenever gem.
bitbucket.rb
class Bitbucket < ActiveRecord::Base
def self.savedata
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: r["date"]
)
end
end
end
我必须先在 Rails 控制台中 运行 Bitbucket.connection
然后 Bitbucket.savedata
保存到数据库中。
感谢您的建议和帮助。
所以,如果我没理解错的话,你想每 1 小时从 bitbucket 中提取一次数据,并且只用新的 'values' 更新你的数据库。在那种情况下,如何知道数据库中是否已有条目的问题取决于您。
例如你可以问:
author_name = r["author"]["user"]["display_name"]
message = r["message"]
date = r["date"]
unless exists?(name: author_name, message: message, date: date)
create(name: author_name, message: message, data: date)
end
'exists?' 的独库:
http://apidock.com/rails/ActiveRecord/Base/exists%3F/class
或者您可以使用 'first_or_create':
http://apidock.com/rails/v3.2.1/ActiveRecord/Relation/first_or_create
我想问一下是否有任何方法可以将数据库从外部源更新到我的 Rails DB 不断(每 1 小时)...
我正在尝试这样做,但是当我这样做时,我的数据库被复制并添加了新文件,所以是否有任何 if
声明我可以在哪里添加新值?
- 我正在从 BitBucket 中提取数据库 (JSON)(提交)
- 然后我将其保存到我的 Rails 数据库中并返回视图。
- 我试过那个用途 whenever gem.
bitbucket.rb
class Bitbucket < ActiveRecord::Base
def self.savedata
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: r["date"]
)
end
end
end
我必须先在 Rails 控制台中 运行 Bitbucket.connection
然后 Bitbucket.savedata
保存到数据库中。
感谢您的建议和帮助。
所以,如果我没理解错的话,你想每 1 小时从 bitbucket 中提取一次数据,并且只用新的 'values' 更新你的数据库。在那种情况下,如何知道数据库中是否已有条目的问题取决于您。
例如你可以问:
author_name = r["author"]["user"]["display_name"]
message = r["message"]
date = r["date"]
unless exists?(name: author_name, message: message, date: date)
create(name: author_name, message: message, data: date)
end
'exists?' 的独库: http://apidock.com/rails/ActiveRecord/Base/exists%3F/class
或者您可以使用 'first_or_create':
http://apidock.com/rails/v3.2.1/ActiveRecord/Relation/first_or_create