2011-05-11 68 views
0

我正在rails2.3.11中工作。 我有這樣在Jquery自動建議中命名路由的路徑

<script type="text/javascript"> 
     $(item).autoSuggest("https://stackoverflow.com/users/sampledata",{selectedItemProp: "name", searchObjProps: "name,login", asHtmlID: elmid,beforeRetrieve: function(string){ $('#spinner').show(); return string; },retrieveComplete: function(data){ $('#spinner').hide(); return data; } }); 
</script> 

一個javascript我試圖將路徑轉換「/用戶/ sampleData在」到軌像sampledata_users_path格式..如何做到這一點?

控制器是用戶控制器和行動的sampleData這個動作有

def sampledata 
@users = User.search(params["q"].gsub(/[^ \w]/, "").strip + "*", :limit => 8) 
js = [] 
@users.each do |user| 
     js << {:value => user.id.to_s, :name => user.name, :image => user.avatar.url(:micro), :login => user.login} 
end 
respond_to do |format| 
    format.json { render :json => js.to_json } 
end 
    end 

回答

1

是上述的「JavaScript的」 JavaScript文件或者是你的ERB模板的一部分?

如果它是你的erb模板的一部分,那麼它很容易。

<script type="text/javascript"> 
    $(item).autoSuggest("<%= sampledata_users_path %>",{selectedItemProp: "name", searchObjProps: "name,login", asHtmlID: elmid,beforeRetrieve: function(string){ $('#spinner').show(); return string; },retrieveComplete: function(data){ $('#spinner').hide(); return data; } }); 
</script> 

如果上面沒有一個動態生成的文件,你可能想看看一個插件,它讀取路徑文件並生成JavaScript的常量在JS使用。我認爲它被稱爲「less_routes」或什麼。