查看您的代码
$('#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