2012-03-08 54 views
0

我打電話的代碼,這個塊在Rails 2.3的應用程序視圖渲染FusionChart:如何將參數添加到url_for?

<div id="cust_progress"></div> 
<script type="text/javascript"> 
    var activity = new FusionCharts("/flash/MSLine.swf", "chart1Id", "600", "450", "0", "1"); 
    activity.setDataURL("<%=url_for(:controller=>'custs',:action=>'progress_line_chart', :id=>params[:id])%>"); 
    activity.render("cust_progress"); 
</script> 

在哪裏這個代碼被稱爲範圍,我有我需要傳遞給其他一些參數數據網址。我一直無法找到任何方法讓這些參數進入我的progress_line_chart控制器操作。

我相信url_for方法不允許你傳遞更多的參數,所以我有點不知所措,我嘗試了一些其他的URL創建方法,但沒有找到任何東西作品。

可以這樣做嗎?全局變量是一個骯髒的解決方案,但這是我暫時擁有的。

回答

1

傳遞數據作爲一個字符串,而不是一個符號

"data-url" => "your data"

+0

,對於一個單一的參數的工作原理,但是它似乎沒有後例如 '&' 採取任何東西: <%DURL = 「?/ custs/progress_line_chart/5端= 123&開始= 456」 %> 我有一些參數[:結束]但params [:開始]是零,使用params.inspect我看到: {「action」=>「progress_line_chart」,「end」=>「123」,「id」 =>「5」,「controller」=>「custs」,「FCTime」=>「684」} – naveed 2012-03-08 18:02:41

+0

要添加 - 問題是編碼的URL,一旦完成,我可以傳遞多個參數,下一個問題彈出我試圖通過的任何時間參數都會破壞URL,因爲我未知的原因,編碼到%3A的':'導致我的URL繼續打破,惱人,但通過使用自定義時間格式可以避免。 – naveed 2012-03-08 18:54:50

0

不知道我理解這個問題,你可以指定任何你喜歡的參數url_for

url_for(:controller => 'custs', :action => 'progress_line_chart', 
     :id => params[:id], :some => "other", :data => "goes", :here => true) 

它將追加無法識別的路徑組件作爲查詢字符串。

+0

這是正確的,但我認爲問題出在setDataUrl()函數,它似乎將查詢字符串中'&'之後的所有內容去掉。所以我可以傳遞一個參數,而不會更多。我認爲這個問題與編碼和正確轉義字符有關。我相信我使用了CGI.escape – naveed 2012-03-13 17:05:16