7

How can I pass a variable (id) from the JavaScript listener:

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

To the instance variable (@foo) in ruby-on-rails controller

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

to correctly create a relationship in the view (form):

<%= 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 %>

Thanks!

2
  • 2
    you should simply do an ajax call GET or POST instead of the alert Commented Apr 9, 2012 at 22:12
  • thanks, it seems to resolve my problem! Commented Apr 11, 2012 at 5:08

1 Answer 1

6

If I am understanding correctly, a good way to do this is to use AJAX to submit the id to your action and use the action to render your form.

That would look something like this in your javascript:

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

You'll need a route:

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

Then in your action you can grab that id and render your form something like this:

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

Then you can just build a form for @user in a partial or whatever

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

You'll have to fill in the details there, but that should get you pretty close.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.