【问题标题】:jQuery-file-uploader with Rails 4.0 Nested Resource带有 Rails 4.0 嵌套资源的 jQuery-file-uploader
【发布时间】:2013-10-22 03:19:28
【问题描述】:

我有一个应用程序,它的图库 has_many :gallery_images

我关注了 Ryan Bates railscast 并上传了多张图片。我遇到的问题是让 create.js.erb 文件自动刷新页面。这是我得到的。

gallery.rb

class Gallery < ActiveRecord::Base
  has_many :gallery_images, dependent: :destroy
end

gallery_images.rb

class GalleryImage < ActiveRecord::Base
  belongs_to :gallery
  has_attached_file :image, 
                    :styles => { :original => "1600x1600>",
                                 :thumb => "100x100#" }, 
                                 :default_url => "/images/:style/missing.png"

  validates_attachment :image,
                       :presence => true,
                       :content_type => { :content_type => ['image/jpeg'] }
end

gallery_images_controller.rb

class GalleryImagesController < ApplicationController

  def create
    if signed_in?
      @gallery = Gallery.friendly.find(params[:gallery_id])
      @image = @gallery.gallery_images.create(gallery_image_params)
      redirect_to gallery_path(@gallery)
    else
      @gallery = Gallery.friendly.find(params[:gallery_id])
      redirect_to signin_url, notice: "Please sign in to add an image."
      session[:return_to] = gallery_path(@gallery)
    end
  end

  def destroy
    @gallery = Gallery.friendly.find(params[:gallery_id])
    @image = @gallery.gallery_images.find(params[:id])
    @image.destroy
    flash[:notice] = "Image removed."
    redirect_to gallery_path(@gallery)
  end

  private

    def gallery_image_params
      params.require(:gallery_image).permit(:image)
    end
end

views/galleries/show.html.erb

<div id="links">
  <%= render @gallery.gallery_images %>
</div>

<% if current_user && current_user.admin? %>
  <%= render "gallery_images/form" %>
<% end %>

views/gallery_images/_form.html.erb

<%= form_for [@gallery, @gallery.gallery_images.new], html: { multipart: true } do |f| %>
  <%= f.label :image, "Upload Image:" %>
  <%= f.file_field :image, multiple: true, name: "gallery_image[image]" %>      
<% end %>

javascripts/gallery_images.js.coffee

jQuery ->
  $('#new_gallery_image').fileupload()
  dataType: "script"

views/gallery_images/create.js.erb

<% if @image.new_record? %>
  alert("Failed to upload image");
<% else %>
  $("#links").append("<%= j render(@image) %>");
<% end %>

感谢您的帮助。

【问题讨论】:

  • 你有什么错误,还是什么也没发生?
  • 没有错误,它会上传所有文件并且没有加载条。

标签: jquery ruby-on-rails ruby-on-rails-4 nested-forms jquery-file-upload


【解决方案1】:

那么你需要一个 remote: true 还是一个 respond_with :javascript 块在控制器中?

看起来它只是要重定向回页面,而从未真正使用 create.js.erb 模板。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多