Контроллер в одной системе хочет отправить данные в контроллер в другой системе - PullRequest
0 голосов
/ 28 января 2012

У меня есть приложение ruby ​​on rails в одной системе (с ipaddress ip_a) и тот же код, работающий в другой системе (с ipaddress ip_b)

Таким образом, оба имеют модель под названием Grid

Я хочу обновить Grid модель ip_a с помощью ip_b Grid Информация о модели.

Как мне этого добиться?

Я попытался напрямую обновить Grid модели, используя установить соединение ActiveRecord. Мне интересно, могу ли я отправить объект с контроллера ip_a на контроллер ip_b по почте.

Кто-нибудь знает, как это сделать

1 Ответ

0 голосов
/ 28 января 2012

Я не уверен, что это лучшее решение, но вы можете использовать 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, которая может быть удаленной.

Конечно, вам нужно это реорганизовать и, вероятно, изменить несколько вещей, но я думаю, что это начало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...