2014-03-25 40 views
1

我的問題是這樣的:Ruby on Rails的 - 包括從視圖文件夾中的JavaScript文件

我想在js.erb文件中使用<%渲染=>「XX」%> - 所以我不能把它在我的資產文件夾中,因爲渲染在資產文件中不起作用。

我已經試圖命名它的index.js.erb讓軌道自動包含它(它位於視圖文件夾,見下文),但我想這並不包括,因爲我刪除了我的require_tree行admin.js(這是我的管理命名空間的「application.js」)。我不能使用require tree簡單,因爲我不希望assets/javascripts/admin中的每個js文件都包含在內。

我來到這裏我的js文件:

views/admin/benefits/index.js.erb 

我要在以下視圖中使用它:

views/admin/benefits/index.html.erb 

我在這裏過於複雜的東西?如果不是,我如何將其納入我的觀點? 如果重要:我使用導軌4.

+0

你解決了嗎?我有同樣的問題。我正在嘗試使用'render'並將.js.erb文件移動到我的Views文件夾中,但現在看起來文件並未包含在資產管道中。 – Turgs

回答

0

將其移動到資產並將一個可選yield添加到佈局文件的head

在你的佈局文件

<% if content_for?(:javascripts) %> 
    yield(:javascripts) 
<% end %> 

在你看來

<% content_for :javascripts do %> 
    <%= javascript_include_tag 'benefits/index' %> 
<% end %> 

我想你是誤會什麼了使用該文件。 js.erb文件允許您在JavaScript文件中使用Ruby。你實際上不能渲染這個文件。你可以看看here以更好地理解它被使用的原因。

+0

我的問題沒有解決,我仍然不能使用渲染。 –

+0

我更新了我的答案以解釋「js.erb」文件的用途。 – CWitty

+0

我不想呈現js文件。我想在js調用中渲染一個部分,就這麼簡單。我可以把整個js代碼直接放在我的視圖中,它可以工作,但是因爲我不希望在外部js文件中使用它。 –

相關問題