使用ajax保持rails params

时间:2015-11-18 09:20:25

标签: jquery ruby-on-rails ajax

我的/map/mappge页面已经从我的索引中获得了@name。所以我的地图控制器,

class MapController < ApplicationController
  def mappage
    @name = params[:name]
  end

,我通过提交标签发送。

<form action="/map/mappage" method="GET">
   <%= select_tag "univ", "<option selected>selected</option><option value='name1'>name1</option><option value='name2'>name2</option><option value='name3'>name3</option>".html_safe, class:"btn btn-default btn-hg dropdown-toggle" %>
   <%= submit_tag "go", class:"btn btn-success btn-hg" %>
</form>
像这样。 当我选择name1并提交它时,mappage网址看起来像

'myhost'/map/mappage?name=name1&commit=go

我想要做的是在保留名称参数的同时调用ajax。 所以我打电话给

$(document).ready(function () {
    $("#my_button").click(function () {
        var ajax_name = "<%= @name %>";

        $.ajax({
            url: "/map/mappage",
            type: 'GET',
            data: {
                'name': ajax_name
            },
            success: function (data) {
                alert("good");
            }
        });
    });
});

点击"#my_button"后,系统会显示提醒信息。问题是,当我点击"#my_button"时,出现错误。 @name是零。我检查了我的网址是否

'myhost'/map/mappage?#

如何保留@name参数?我可以阅读的任何建议或文件吗?

2 个答案:

答案 0 :(得分:2)

执行此操作的rails way是使用包含remote: true的表单及其端点(具有respond_to :js的控制器和相应的.js视图)

请告诉我,如果您需要使用某些代码进行说明。

答案 1 :(得分:0)

你可以使用gem&#39; gon 似乎很容易通过视图将控制器轨道中的参数传递到javascript文件