Javascript作为对控制器操作的响应显示它';s自己的代码

Javascript作为对控制器操作的响应显示它';s自己的代码,javascript,jquery,ruby-on-rails,ajax,turbolinks,Javascript,Jquery,Ruby On Rails,Ajax,Turbolinks,这已经困扰了我三天了。我提交了一个表单,然后根据验证是否成功,将javascript代码注入页面。我的控制器操作很简单,如下所示: def create @cat = Cat.new(cat_params) @cat.save end <%= form_for @cat, remote: true, format: 'js', method: 'post', :html => {:multipart => true} do |f| %> 哪个触发了cr

这已经困扰了我三天了。我提交了一个表单,然后根据验证是否成功,将javascript代码注入页面。我的控制器操作很简单,如下所示:

def create
    @cat = Cat.new(cat_params)
    @cat.save
end
<%= form_for @cat, remote: true, format: 'js', method: 'post', :html => {:multipart => true} do |f| %>
哪个触发了
create.js.erb

<% if @cat.new_record? %>
    $('#my_div').html('<%= j render('form') %>');
<% else %>
    $('#cats').append("done");
<% end %>
如果出现故障:

$('#cats').append("done");    
Javascript代码根本不处于活动状态。我有一个远程表单,用于创建新的
cat
,定义如下:

def create
    @cat = Cat.new(cat_params)
    @cat.save
end
<%= form_for @cat, remote: true, format: 'js', method: 'post', :html => {:multipart => true} do |f| %>

我真的不明白这里有什么问题。我正在使用turbolinks,所以这可能是一个问题,但我不明白为什么作为对特定操作的响应的javascript不会被翻译。有什么问题吗?

最好只发送一个成功响应,并提供所需的任何数据。从您的示例来看,无论如何都没有理由在服务器上生成JavaScript。@Paul,谢谢!那么,我如何触发表单验证并呈现上传的对象部分。我正在同时上传多个文件。你能给我一个简短的草图吗?)客户端。在页面的现有HTML或已编译的模板表单中设置表单,然后使用客户端模板填写详细信息。如果您已经习惯了使用jquery。