我有一个用于视图的JavaScript文件。需要有Ruby代码,我需要在Ruby中做render
,所以我理解我不能将JavaScript文件放在资产管道中。我可以将它放在与.html.erb
文件相同的视图文件夹中。
如何包含JavaScript文件,或将该JavaScript文件用于该视图文件?我在我的视图中尝试javascript_include_tag
(显然使用资产管道),使用src="myfile.js"
文件的脚本myfile.js.erb
(但找不到myfile.js
)和名称我的js.erb
文件(users.js.erb
)与我的.html.erb
文件(users.html.erb
)相同,但都无济于事。
答案 0 :(得分:6)
javascript_include_tag不会在视图文件夹本身中声明js.erb。有三种不同的方法可以使用javascript。
1]在视图中编写代码,即在html.erb本身。
2]在public / javascripts文件夹中创建js文件,并使用javascript_include_tag包含它。
3]如果你想把请求作为Ajax:
:remote => true
发出请求。在被调用的操作中,使用如下代码:
def action
respond_to do |format|
format.js
end
end
答案 1 :(得分:1)
你可以通过
来做到这一点render :partial => "myfile"
您必须将文件保存在控制器的视图目录中,名称为_myfile.js.erb
现在你可以在这里编写你自己的代码(js,ruby),并且可以用javascript_include_tag将js分开来获取资产pipline
此文件将首先由erb引擎呈现,然后以javascript格式呈现。