如何在视图文件夹中使用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