我有以下before_save
方法:
def get_data
url = "http://www.api-fetching-url.com/where_my_data_input_is=#{self.my_data}&output=json"
new_data = HTTParty.get(url)
@field_to_update = new_data['one']['two']['here']
self.field_to_update = @field_to_update
end
不幸的是,self.my_data
似乎无法正常工作,因为JSON网址不会产生任何结果。但是,当我以硬编码的方式替换my_data
时,它的工作正常。此外,我可以在Rails控制台中执行find
并获得my_data
字段。因此,这不是一个问题,不保存或表格方面的东西。
在before_save
方法中以这种方式插入数据是否存在问题?如果没有,是否有一种不同的做法,我错过了?
答案 0 :(得分:0)
一些评论:
self
接收器调用方法。例如,私有方法只能在没有显式接收器的情况下调用,因此私有方法没有self.
... puts url
,运行程序并检查输出。网址是否正确?HTTParty.get('...')
返回一个响应对象,您可能需要正确解析响应的正文。JSON服务的示例:
url = 'http://service.com/path/to/resource.json'
response = HTTParty.get url
data = JSON.parse(response.body)
# now you can use the data, e.g.
# bla = data['one']['foo']