我在一个系统上有一个ruby on rails app(使用ipaddress ip_a),在另一个系统上运行相同的代码(使用ipaddress ip_b)
因此,两者都有一个名为Grid
我希望用ip_b Grid
模型的信息更新ip_a的Grid
模型。
我怎样才能做到这一点?
我尝试使用ActiveRecord的建立连接直接更新Grid
模型。
我想知道我是否可以通过post将ip_a的控制器中的对象发送到ip_b的控制器。
任何人都知道怎么做 ?
答案 0 :(得分:0)
我不确定这是最好的解决方案,但您可以使用JSON。 例如:
grids_controller.rb
def sync
grid = Grid.find(params[:id])
if grid
client = HTTPClient.new
json_params = client.get_content("http://your_ip_b_url/grid/#{params[:id]}.json")
grid.update_attributes(ActiveSupport::JSON.decode(json_params))
end
respond_to do |f|
f.js #in sync.js.erb you just modifying your index.html.erb to show that action is completed
end
end
def show
grid = Grid.find(params[:id])
respond_to do |f|
f.json { render :json => grid}
end
end
在index.html.erb中,您只需在@grids列表中创建一个可以远程同步操作的链接。
当然你需要重构那个,并且可能会改变一些事情,但我认为这是一个开始。