未呈现正确的视图 - Rails 4

Correct view is not rendered - Rails 4

我正在尝试创建一个放置区,用户可以在其中一次放置多个文件。问题是它只在我重新加载网页时呈现拖放区,而不是在我第一次打开它时。我的意思是,当我单击打开负责上传的视图时,我只会看到 browseupload 按钮在我的代码中,但是当我重新加载页面时,我得到了放置区框。我看不到我在这里错过了什么。我写的代码是:

_new.html.erb

<center>
<% @upload = Upload.new %>
<%= form_for @upload , html: { :multipart => true, class: "dropzone"} do |u| %>
    <div class="fallback">
        <%= u.file_field :file %><br>
        <%= u.submit "Upload" %>
    </div>
<% end %>

uploads.js.coffee

$(document).ready () ->
Dropzone.autoDiscover = false;

$("#new_upload").dropzone({
    maxFilesize: 25,
    paramName: "upload[file]",
    addRemoveLinks: true
}); 

uploads_controller.rb

class UploadsController < ApplicationController

def new
    @upload = Upload.new
end

def create
  @upload = Upload.create(upload_params)
  if @upload.save
     render json: { message: "success" }, :status => 200
  else
     render json: { error: @upload.errors.full_messages.join(',')}, :status => 400
  end       
end

def destroy
  @upload = Upload.find(params[:id])
  if @upload.destroy    
    render json: { message: "Archivo eliminado." }
  else
    render json: { message: @upload.errors.full_messages.join(',') }
  end
end

private

def upload_params
    user = current_user.id
    params.require(:upload).permit(:file,:user)
end

end

您可能还会注意到,在 _new.html.erb 文件中,我正在重新定义 @upload class 变量,该变量已在控制器。如果我删除它,new 操作将不起作用。那里有什么问题?

请询问我是否需要我提供更多代码或详细信息。

在此先致谢。

您应该将 'data-no-turbolink': true 添加到打开该页面的 link。 Turbolinks 并不总是与 $(document).ready 配合得很好,所以这将在没有 turbo links 的情况下调用 link。

还有一个名为 jquery-turbolinks 的 gem 可能会使当前版本在没有 data-no-turbolink

的情况下工作