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