Вопрос по ruby-on-rails, javascript, json, ruby-on-rails-3 – Передача переменной JavaScript в контроллер ruby-on-rails

6

Как я могу передать переменную (id) из слушателя JavaScript:

Gmaps.map.callback = function() { 
    ...
    ...
    google.maps.event.addListener(marker, 'click', function() {
      var id = this.currentMarker;
      alert(id); 
    });
   }
  }

К переменной экземпляра (@foo) в контроллере ruby-on-rails

def create
  @foo = ???
  ...
end

правильно создать отношения в представлении (форме):

<%= form_for user.relationships.build(:followed_id => @foo.id) do |f|    %>
<div><%= f.hidden_field :followed_id %></div>
<div class="actions"><%= f.submit "Follow" %></div>
<% end %>

Спасибо!

спасибо, похоже, решил мою проблему! icherevkov
Вы должны просто сделать ajax-вызов GET или POST вместоalert apneadiving

Ваш Ответ

1   ответ
4

хороший способ сделать это - использовать AJAX для отправки идентификатора вашему действию и использовать это действие для отображения вашей формы.

Это будет выглядеть примерно так в вашем JavaScript:

jQuery.ajax({
  data: 'id=' + id,
  dataType: 'script',
  type: 'post',
  url: "/controller/action"
});

Вам понадобится маршрут:

post 'controller/action/:id' => 'controller#action'

Затем в своем действии вы можете получить этот идентификатор и сделать вашу форму примерно такой:

def action
  @user = User.relationships.build(:followed_id => params[:id])
  render :viewname, :layout => false
end

Тогда вы можете просто создать форму для @user в частичную или что-то

<%= form_for @user do |f| %>

Вы должны будете заполнить детали там, но это должно быть довольно близко.

Похожие вопросы