Переход от Javascript к действию рельсов - PullRequest
0 голосов
/ 02 августа 2010

В настоящее время у меня есть город, в который кто-то войдет в систему, и я хочу перейти от действия javascript к действию rails, чтобы я мог получить city.id из базы данных.Например

мой javascript

function get_city(city){
   //city comes in like "Washington DC"
}

мои рельсы action

def return_city_id
  @city = City.find_by_name(params["name"])
  return @city.id
end

Ответы [ 2 ]

2 голосов
/ 02 августа 2010

Попробуйте AJAX.Вы можете установить путь в routes.rb как find_city_id_by_name?name=Washington DC.Затем вы можете использовать jquery для отправки запроса.

$.ajax({
  url: 'find_city_id_by_name',
  data: {'name' : city},
  dataType: 'text',
  success: function(id) {
    alert(id);
  }
});

В контроллере вам нужно будет написать один идентификатор в качестве ответа на запрос:

render :text => id

Дополнительная информация:
http://api.jquery.com/jQuery.ajax/

Хотя то, что вы спрашиваете, определенно выполнимо, запрашивать back-end каждый раз, когда вам нужно получить идентификатор города по его названию, звучит для меня как плохая идея.Если само имя пришло из бэк-энда (например, у вас есть список городов для выбора пользователем), лучше указывать идентификаторы вместе с именами (не видимыми для пользователя, но где-то в html).

0 голосов
/ 02 августа 2010

Вы должны использовать AJAX для вызова любых методов на стороне сервера.

function get_city(city){
    $.getJSON("/ajax/city_id", { "city" : city }, function(data)
    {
        //Do something with data
    });
}

/ajax/city_id - это какое-то действие в каком-либо контроллере, которое возвращает JSON при его вызове.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...