Передача переменной JavaScript в контроллер ruby-on-rails
как я могу передать переменную (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 %>
спасибо!
1 ответов
если я правильно понимаю, хороший способ сделать это-использовать 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| %>
вам придется заполнить детали там, но это должно привести вас довольно близко.