2010-08-01 53 views
0

我目前有一個城市,有人會進入系統,我想從我的JavaScript行動去一個鐵軌行動,所以我可以從數據庫中獲取city.id。例如從Javascript走向鐵軌行動

我的javascript

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

我的Rails應用

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

回答

2

嘗試阿賈克斯。您可以在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); 
    } 
}); 

在控制器,你需要寫一個id作爲請求響應:

render :text => id 

的更多信息:
http://api.jquery.com/jQuery.ajax/

雖然你問什麼是絕對可行的,查詢後臺結束每次你需要通過名字獲取城市ID聽起來對我來說是一個壞主意。如果名稱本身來自後端(例如,您有城市列表供用戶選擇),最好將id與名稱一起提供(用戶不可見,但在html中某處)。

0

您必須使用AJAX調用服務器端的任何方法。

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

/ajax/city_id在一些控制器,當你把它叫做返回JSON一些行動。