2016-08-21 49 views
0

我嘗試了所有可以使用js.erb文件的方法,因爲我需要使用ruby以及我的js。如何在rails應用程序中使用js.erb

我知道這不是代碼,因爲我在application.js中有同樣的事情,它工作正常。

型號:主題

我已經嘗試添加topics.js.erb到的意見/主題/ 我已經嘗試了部分_index.js.erb和渲染 - 我看到它加載,但它沒有執行。

在這兩個文件,我有:

$(document).ready(function() { 
    console.log('something'); 
}) 

有什麼明顯的,我在這裏失蹤? 謝謝!

+0

檢查你主題控制器的行動,並確保你確實用js做出迴應,默認情況下你的回覆是html!這裏我們去:http://guides.rubyonrails.org/working_with_javascript_in_rails.html!你的迴應應該是這樣的:respond_with do | format | format.js format.html結束。您也可以檢查您的控制檯(軌道與運行服務器),你應該看到像渲染主題#索引在js格式.. – Evgeny

回答

1

好吧,我想我現在理解你的問題。您在控制器中有一些索引操作,index.html.erb視圖和index.js.erb,並且您想在呈現index.html.erb後從index.js.erb運行javascript。它不會工作,js.erb意見被用於其他的東西。要僅在索引操作呈現時運行JavaScript代碼,您可以將此JavaScript代碼放入index.html.erb視圖中。或者,您可以將此代碼放入您的application.js文件中並添加其他條件,以便它僅運行索引操作。

沒有Rails的方式解決了這個,但你可以嘗試這樣的事:

index.html.erb:

# ... your code here 

<script type="text/javascript"> 
    window.railsView = "controller_name#index"; 
</script> 

的application.js:

$(document).ready(function() { 
    if (window.railsView == "controller_name#index") { 
    console.log("something"); 
    } 
}); 
+0

我有一個名爲index.js.erb文件保存在我的主題視圖。我還需要做什麼,只是爲了讓控制檯記錄渲染頁面的內容?它仍然沒有連接 – gwalshington

+0

@gwalshington現在我明白你的意思了。我改變了我的答案。 –

+0

什麼是js.erb文件用於?我的最終目標是將js和ruby都放在同一個文件中。例如,我想定義current_user並知道他們是否已經收藏了一個主題,並且他們在索引頁面上是異步/不喜歡/最喜歡的。這已經通過ruby完成了,但是頁面會隨着每個動作重新加載。這不是使用js.erb嗎? – gwalshington

相關問題