未呈现正确的视图 - Rails 4
Correct view is not rendered - Rails 4
我正在尝试创建一个放置区,用户可以在其中一次放置多个文件。问题是它只在我重新加载网页时呈现拖放区,而不是在我第一次打开它时。我的意思是,当我单击打开负责上传的视图时,我只会看到 browse 和 upload 按钮在我的代码中,但是当我重新加载页面时,我得到了放置区框。我看不到我在这里错过了什么。我写的代码是:
_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
的情况下工作
我正在尝试创建一个放置区,用户可以在其中一次放置多个文件。问题是它只在我重新加载网页时呈现拖放区,而不是在我第一次打开它时。我的意思是,当我单击打开负责上传的视图时,我只会看到 browse 和 upload 按钮在我的代码中,但是当我重新加载页面时,我得到了放置区框。我看不到我在这里错过了什么。我写的代码是:
_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