如何在视图文件夹中使用js文件

我在rails上使用ruby,我想渲染部分点击(使用jquery)这个例子:

$('#submit').on('click', function(){ $('#lol').append(" 'myPartial' ) %>"); } 

我基本上想要提交一个表单然后以只读格式显示结果(渲染部分)而不刷新页面。 问题是我无法在资产管道中使用渲染。 如何在视图文件夹中包含我的JavaScript文件,或者这个问题的解决方案是什么?

看着你的代码

 $('#submit').on('click', function(){ $('#lol').append("<%= escape_javascript(render :partial => 'myPartial' ) %>"); } 

我认为你在ajax和普通的jquery之间混淆了 。 如果您不需要执行任何其他操作,那么您应该使用普通的jquery来显示和隐藏您的内容。 为此,您需要将此代码放在app / assets / javascript / application.js中或创建一个新文件然后在application.js中需要它

 //= require file_name 

在您的视图中,您可以通过为其提供如下样式来隐藏内容的父元素:

 #your_content_container{ display: none; } 

然后将您的jquery代码放在your_file.js中

 $(document).on("click","#submit",function(){ $("##your_content_container").show(); }) 

如果它是你的问题表格,那么你需要在你的控制器中执行一些逻辑,所以你应该使用Ajax

因为它是一个表单,所以你需要在表单中使用remote:true选项:

 <%= form_for(@user, remote: true) do |f| %> // your fields <% end %> 

然后在你的控制器内你可以拥有

 def your_method #do your logic here respond_to do |format| format.js{} end end 

这将允许rails在您的视图中查找名为your_method.js.erb的文件,您可以在其中调用jquery并渲染部分文件。 在your_method.js.erb中

 $('#lol').append("<%=j render :partial => 'myPartial' %>"); 

有关详细信息,请参阅Working with Javascript in Rails