2012-12-19 102 views
-1

我的代碼是這樣的:的Ruby on Rails- JSON網址助手

$.getJSON("/somefolder/somefile.json?"+urlParams, function(json) { 
    //populate combo here 
}); 

我工作on Rails的,用青菜和我有這個代碼的文件原本是file.js雖與管道工作資產我已經將其更改爲file.js.erb

在Dev我在http://localhost:XXXX工作,所以結果是確定的。 In Prod我正在使用文件夾http://domain.com:XXXX/app,所以結果不好。

編碼像<%=image_tag("loading.gif", :class => "loading")%>完美的作品在這個文件中,但$.getJSON("<%= controller_method_path %>.json?"+urlParams沒有

什麼建議嗎?

+0

這是怎麼不清楚? '<%= image_tag(「loading.gif」,:class =>「loading」)%>'works and'<%= controller_method_path%>'不在* .js.erb文件中......反正找到了解決方案,謝謝 – tostasqb

回答

2

假設您的路由設置爲在生產中使用前綴,您應該使用完整路徑的實際路由方法。

$.getJSON("<%= thingies_url(@thingy, :json) %>?"+urlParams, ... 

現在整個路徑應該在所有情況下正確生成。


但這樣的瘋狂是爲什麼通常不推薦在域的子目錄中運行rails應用程序。它使路由和相對鏈接到其他頁面和資產更讓人頭疼。

如果您可以託管子站點上的rails應用程序。

# not awesome :(
http://mydomain.com/myapp 

# totally awesome! :D 
http://myapp.mydomain.com/ 
+0

我的一個同事找到了答案,在Config> initializers中添加了一個cusomization文件,以便幫助者添加到我在這裏發佈的所有文件中:'Rails.application.assets.context_class.class_eval do include ActionView :: Helpers 包括Rails.application.routes.url_helpers end' – tostasqb