我遇到了jQuery文件上传和Rails的问题4.除了一件事之外,一切似乎都在工作!文件已成功上传,数据已成功发布到数据库。但是,我在上传或"创建":
时收到以下错误 SyntaxError: Unexpected token $
我的猜测:我认为它与想要接收JSON的东西有关,但我不知道如何实现这个或在哪里放置它。任何帮助都会很棒!
这就是我所拥有的:
<% if @choice.new_record? %>
alert("Failed to upload image: <%= j @choice.errors.full_messages.join(', ').html_safe %>");
<% else %>
$("#paintings").append("<%= j render(@choice) %>");
<% end %>
<h1>Choices Gallery</h1>
<div id="paintings">
<%= render @choices %>
</div>
<div class="clear"></div>
<div class="container">
<h2>Upload file</h2>
<%= form_for Choice.new, :html => { :multipart => true, :id => "fileupload" } do |f| %>
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
<div class="row fileupload-buttonbar">
<div class="span7">
<!-- The fileinput-button span is used to style the file input field as button -->
<span class="btn btn-success fileinput-button">
<i class="icon-plus icon-white"></i>
<span>Add files...</span>
<%= f.file_field :image, multiple: true, name: "choice[image]" %>
</span>
<button type="submit" class="btn btn-primary start">
<i class="icon-upload icon-white"></i>
<span>Start upload</span>
</button>
<button type="reset" class="btn btn-warning cancel">
<i class="icon-ban-circle icon-white"></i>
<span>Cancel upload</span>
</button>
<button type="button" class="btn btn-danger delete">
<i class="icon-trash icon-white"></i>
<span>Delete</span>
</button>
<input type="checkbox" class="toggle">
</div>
<div class="span5">
<!-- The global progress bar -->
<div class="progress progress-success progress-striped active fade">
<div class="bar" style="width:0%;"></div>
</div>
</div>
</div>
<!-- The loading indicator is shown during image processing -->
<div class="fileupload-loading"></div>
<br>
<!-- The table listing the files available for upload/download -->
<table class="table table-striped"><tbody class="files" data-toggle="modal-gallery" data-target="#modal-gallery"></tbody>
</table>
class ChoicesController < ApplicationController
def index
@choices = Choice.all
end
def show
@choice = Choice.find(params[:id])
end
def new
@choice = Choice.new
end
def create
@choice = Choice.create(choice_params)
end
end
更新#1 首先,我忘了提到我正在使用CarrierWave。第二,这是控制台回馈的内容:(你可以看到它添加到数据库没有问题。它上传之后似乎出现了错误。)
Started POST "/choices" for 127.0.0.1 at 2013-08-15 15:07:45 -0700
Processing by ChoicesController#create as JSON
Parameters: {"utf8"=>"✓", "authenticity_token"=>"iKxDDhTAbu/hY/QqEk9jXr9NJltIQmGWu6tUZEMe7pM=", "choice"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x007fe3f2c50818 @tempfile=#<Tempfile:/var/folders/z6/c199lpm13492b758r5xx0ngm0000gn/T/RackMultipart20130815-28015-ngm6w2>, @original_filename="speech_teacher.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"choice[image]\"; filename=\"speech_teacher.jpg\"\r\nContent-Type: image/jpeg\r\n">}}
(0.2ms) BEGIN
SQL (26.4ms) INSERT INTO `choices` (`created_at`, `image`, `name`, `updated_at`) VALUES ('2013-08-15 22:07:45', 'speech_teacher.jpg', 'Speech Teacher', '2013-08-15 22:07:45')
(0.4ms) COMMIT
Redirected to http://localhost:3000/choices
Completed 302 Found in 75ms (ActiveRecord: 27.0ms)
Started GET "/choices" for 127.0.0.1 at 2013-08-15 15:07:45 -0700
Processing by ChoicesController#index as JSON
Choice Load (1.7ms) SELECT `choices`.* FROM `choices`
Rendered choices/_choice.html.erb (2.5ms)
Rendered choices/index.html.erb within layouts/application (13.0ms)
Completed 200 OK in 109ms (Views: 106.2ms | ActiveRecord: 1.7ms)