2010-07-08 138 views
2

將JavaScript添加到我的Rails3視圖的最佳方式是什麼?如何將自定義JavaScript添加到我的rails3視圖?

我希望能夠在控制器中做一些處理,然後根據結果製作一些JavaScript,並將得到的JavaScript放入視圖中。

例如,我想從數據庫中獲取一系列經緯度點,並在Google Map上創建標記。地圖初始化和標記必須用JavaScript創建,但與視圖交互。 (這只是我試圖完成的一個例子,我沒有在尋找建議使用Google地圖集成的gems /插件)。

是否有某種方法將js.erb文件渲染到特定視圖的頭部?做這種事情的「軌道方式」是什麼?

回答

4

如果您希望在加載頁面之前添加JavaScript(即不是通過Ajax),那麼沒有特別的理由說明爲什麼您不能創建包含腳本標記的_javascript.html.erb部分,然後執行按照您的看法:

<%= render 'javascript' %> 

_javascript.html.erb的代碼將有機會獲得在您的控制器設置的實例變量,你可以寫的方式爲.js.erb文件相同。

(或者,你可以用你的佈局文件的<head>部分<%= yield :head %>,然後<content_for :head do %><%= render 'javascript' %><% end %>在你的意見,如果你想腳本是在<head>。)

如果你想在頁面上運行的JavaScript遵循Ajax請求,然後只需將代碼敲入my_action.js.erb文件並根據需要插入<%= @my_instance_variable.value %>即可使用 - 結果代碼將在請求結束後在您的頁面上運行。

相關問題