2015-11-18 2 views
1

У меня есть /map/mappge страница уже получила @name из моего индекса. Таким образом, мой контроллер карты,сохранить параметры рельсов с помощью ajax

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

и, отправлю его тегом submit.

<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 URL выглядит

'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 - ноль. И я проверил, что мой URL выглядит

'myhost'/map/mappage?#

Как я могу держать @name параметров? Любые предложения или документ, который я могу прочитать?

+0

проверить это http://stackoverflow.com/questions/19491336/get-url- parameter-jquery –

+0

Я не думаю, что вы на самом деле используете params [: name], чтобы получить значение имени, поскольку это ясно, что вы используете инструкцию select, поэтому, пожалуйста, сделайте свой вопрос ясным. – ImranNaqvi

+0

@Van Huy, Спасибо за вашу ссылку. Я решил это –

ответ

2

A rails way, чтобы сделать это было бы иметь форму с remote: true и конечной точкой для него (контроллера с respond_to :js, и соответствующим .js вида).

Pls, сообщите мне, если вам нужно это проиллюстрировано некоторым кодом.

+0

Боскович прав. установка remote true, и передача ваших параметров прямо - отличный способ добиться того, что вы пытаетесь сделать. [Проверьте этот ответ, как это сделать.] (Http://stackoverflow.com/a/33468554/4330954) –

0

Вы можете использовать камень 'gon Это, кажется, простой способ передать параметры из контроллера рельсов в файла JavaScript с помощью зрения

Смежные вопросы