我有一个R函数,该函数应该从网站上检索数据并将其存储在文本文件中。但是由于某些原因,它以前可以工作,但是几天后返回空文件。
型号: `
class NDCCode < ActiveRecord::Base
self.table_name='ndc_codes'
def crawl
R.eval "library(rvest)"
R.eval "library(stringr)"
R.eval "load('app/models/rdata/ndc_crawler.RData')"
R.eval "ndc_crawler('#{ndc_code}')"
end
end
` 控制器:
class MedicationsController < ApplicationController
def ndc_crawl
ndc = NDCCode.find_by(ndc_code: params[:ndc])
ndc.crawl
file_content=File.read("#{Rails.root}/product_info.txt")
puts file_content
render plain: file_content.gsub(/\n|\r/, '<br>')
end
end
我的命令行显示
.RINRUBY.PARSE.STRING <- rinruby_get_value()
rinruby_parseable(.RINRUBY.PARSE.STRING)
rm(.RINRUBY.PARSE.STRING)
library(rvest)
print('RINRUBY.EVAL.FLAG')
.RINRUBY.PARSE.STRING <- rinruby_get_value()
rinruby_parseable(.RINRUBY.PARSE.STRING)
rm(.RINRUBY.PARSE.STRING)
library(stringr)
print('RINRUBY.EVAL.FLAG')
.RINRUBY.PARSE.STRING <- rinruby_get_value()
rinruby_parseable(.RINRUBY.PARSE.STRING)
rm(.RINRUBY.PARSE.STRING)
load('app/models/rdata/ndc_crawler.RData')
print('RINRUBY.EVAL.FLAG')
.RINRUBY.PARSE.STRING <- rinruby_get_value()
rinruby_parseable(.RINRUBY.PARSE.STRING)
rm(.RINRUBY.PARSE.STRING)
ndc_crawler('00603374621')
print('RINRUBY.EVAL.FLAG')
Rendered text template (0.1ms)
Completed 200 OK in 678ms (Views: 17.5ms | ActiveRecord: 46.3ms)
R版本是R-3.2.3,已安装rvest,stringr软件包。使用rinruby gem。
任何帮助将不胜感激。 TIA