ich*_*kov 7 javascript json ruby-on-rails ruby-on-rails-3
如何从JavaScript侦听器传递变量(id):
Gmaps.map.callback = function() {
...
...
google.maps.event.addListener(marker, 'click', function() {
var id = this.currentMarker;
alert(id);
});
}
}
Run Code Online (Sandbox Code Playgroud)
到ruby-on-rails控制器中的实例变量(@foo)
def create
@foo = ???
...
end
Run Code Online (Sandbox Code Playgroud)
在视图(窗体)中正确创建关系:
<%= 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 %>
Run Code Online (Sandbox Code Playgroud)
谢谢!
如果我正确理解,执行此操作的一个好方法是使用AJAX将ID提交给您的操作,然后使用该操作来呈现表单。
您的javascript中看起来像这样:
jQuery.ajax({
data: 'id=' + id,
dataType: 'script',
type: 'post',
url: "/controller/action"
});
Run Code Online (Sandbox Code Playgroud)
您需要一条路线:
post 'controller/action/:id' => 'controller#action'
Run Code Online (Sandbox Code Playgroud)
然后,在操作中,您可以获取该ID并呈现如下形式的表单:
def action
@user = User.relationships.build(:followed_id => params[:id])
render :viewname, :layout => false
end
Run Code Online (Sandbox Code Playgroud)
然后,您可以只部分或为@user建立一个表单
<%= form_for @user do |f| %>
Run Code Online (Sandbox Code Playgroud)
您必须在此处填写详细信息,但这应该可以使您更加接近。
| 归档时间: |
|
| 查看次数: |
5159 次 |
| 最近记录: |