我有一个标准的rails应用程序。我正在尝试执行简单的AJAX来添加对象。代码是我之前使用过的代码所以我希望在这种情况下我有一些错误。
无论如何,我正在尝试使用 carrierwave 上传文档。
我的控制器操作如下所示:
documents_controller
def create
@document = @user.documents.build(document_params)
@document.user_id = @user.id
@result = @document.save
if @result
respond_to do |format|
format.js
format.html { raise "submitted as html" }
end
else
render :back
end
end
我的 document.html.erb 布局。
<!DOCTYPE html>
<html class="backend">
<head>
<%= javascript_include_tag 'documents' %>
<%= csrf_meta_tags %>
<%= render 'shared/fonts'%>
<%= render 'shared/css'%>
</head>
<body>
<%= yield %>
</body>
</html>
documents.js 文件。
//= require jquery
//= require jquery_ujs
//= require jquery.validate.min
//= require validation
在 documents / index.html.erb 视图中测试JQuery。
<script>
if (typeof jQuery != 'undefined') {
alert("jQuery library is loaded!");
}else{
alert("jQuery library is not found!");
}
</script>
最后, documents / create.js.erb 文件。
$('#document-table > tbody').append('<%= j render(@document) %>');
$('#document-table > tbody').append('<%= j render 'documents/share', document: @document %>');
$('#document-form')[0].reset()
$('#edit_document_<%= @document.id %>').submit();
表格:
<%= form_for [@user, @document], html: {id: 'document-form', data: {remote: true}} do |f| %>
<%= f.text_field :name, class: "form-control" %>
<%= f.text_area :description, class: "form-control" %>
<%= f.file_field :file %>
<%= button_tag class: "btn btn-primary pull-right" do %>
<i class="ico-file-upload2 text-white mr5"></i> Upload Document
<% end %>
<% end %>
文档表和文档表单是我给这些对象的ID。我不认为这有任何不规则 - 并且它适用于其他网站,但当我点击提交时,回复是:
Processing by DocumentsController#create as HTML
如果有什么我可以遗失的,请告诉我。
答案 0 :(得分:0)
使用:remote =&gt;真正的外部HTML选项,请尝试下面的一个
form_for [@ user,@ docment],:remote =&gt; true,html:{id:&#39; document-form&#39;} do | f | %GT;