0
我有一个应用程序与两个模型库和照片,与每张照片属于一个画廊和画廊有很多照片。除jQuery上传以外,一切正常。照片正在上传到图库中,但我必须刷新页面才能看到更新。但是,当我检查响应代码时,我可以看到更新是在服务器端进行的。Rails 4 - jQuery不替换html
PhotosController
def create
@gallery = Gallery.find(params[:photo][:gallery_id])
if params[:images]
params[:images].each do |image|
@gallery.photos.create(image: image)
respond_to do |format|
format.html { redirect_to @gallery }
format.js
end
end
end
end
GalleriesController
def show
@photo = Photo.new
respond_to do |format|
format.html # show.html.erb
format.js
end
end
/photos/create.js.erb
$("#photos").html("<%= escape_javascript(render partial: 'shared/photo', locals: {photo: @photo}) %>");
/view/galleries/_photos.html.erb
<div id="photos" class="row">
<% @gallery.photos.each do |photo| %>
<%= render partial: 'shared/photo', locals: {photo: photo} %>
<% end %>
</div>
/view/shared/_photo_form.html.erb
<%= form_for(@photo, :remote => true, :html => { multipart: true}) do |f| %>
<%= token_tag(nil) %>
<%= f.hidden_field :gallery_id, value: @gallery.id %>
<%= f.label :image, "Upload images:" %>
<%= file_field_tag "images[]", type: :file, multiple: true %>
<%= f.submit "Add Photo", class: "btn btn-primary" %>
<% end %>
的console.log
Started POST "/photos" for 127.0.0.1 at 2014-05-01 20:34:13 -0400
Processing by PhotosController#create as */*
Parameters: {"utf8"=>"✓", "authenticity_token"=>"p3FpgJeHOnqjIKK8I+0WNKv4x7JPqkvdmBPzD9XHmj0=", "photo"=>{"gallery_id"=>"8"}, "images"=>[#<ActionDispatch::Http::UploadedFile:0x0000010594bfa0 @tempfile=#<Tempfile:/var/folders/y_/s9cr1w213wgg68x_3n64gxy800011c/T/RackMultipart20140501-65824-1kr4fcr>, @original_filename="IMAG0376.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"images[]\"; filename=\"IMAG0376.jpg\"\r\nContent-Type: image/jpeg\r\n">]}
User Load (1.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
Gallery Load (0.6ms) SELECT "galleries".* FROM "galleries" WHERE "galleries"."id" = $1 LIMIT 1 [["id", "8"]]
(0.3ms) BEGIN
SQL (0.8ms) INSERT INTO "photos" ("created_at", "gallery_id", "image", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", Fri, 02 May 2014 00:34:14 UTC +00:00], ["gallery_id", 8], ["image", "IMAG0376.jpg"], ["updated_at", Fri, 02 May 2014 00:34:14 UTC +00:00]]
(0.6ms) COMMIT
Redirected to http://localhost:3000/galleries/8
Completed 302 Found in 1802ms (ActiveRecord: 3.5ms)
Started GET "/galleries/8" for 127.0.0.1 at 2014-05-01 20:34:15 -0400
Processing by GalleriesController#show as */*
Parameters: {"id"=>"8"}
Gallery Load (0.5ms) SELECT "galleries".* FROM "galleries" WHERE "galleries"."id" = $1 LIMIT 1 [["id", "8"]]
Photo Exists (0.5ms) SELECT 1 AS one FROM "photos" WHERE "photos"."gallery_id" = $1 LIMIT 1 [["gallery_id", 8]]
Photo Load (0.4ms) SELECT "photos".* FROM "photos" WHERE "photos"."gallery_id" = $1 [["gallery_id", 8]]
Rendered shared/_photo.html.erb (1.2ms)
Rendered shared/_photo.html.erb (0.8ms)
Rendered galleries/_photos.html.erb (9.1ms)
Rendered galleries/_photo_form.html.erb (1.3ms)
Rendered galleries/show.html.erb within layouts/application (16.0ms)
User Load (1.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
Rendered layouts/_navigation_links.html.erb (5.7ms)
Rendered layouts/_navigation.html.erb (7.1ms)
Rendered layouts/_messages.html.erb (0.1ms)
Completed 200 OK in 105ms (Views: 98.1ms | ActiveRecord: 2.5ms)
如果你把'的console.log(“这里”);'为您create.js.erb文件的第一行,它正确地在浏览器中登录?你想确定的第一件事是JS视图是否是渲染。 – subvertallchris
你的'''/ photos/create.js.erb'''响应只会用一张照片替换''#照片''的内容。这是所需的行动? –
用控制台日志更新。我不认为正在调用create.js.erb – fiyah