0

ユーザーが注文を手配できる画像のリストがあります。

ユーザーが画像をアップロードしたときに、リストを引き続き並べ替え可能にしたい。

ここで説明されているのと同様のアップロードを使用しています:http://kpumuk.info/ruby-on-rails/in-place-file-upload-with-ruby-on-rails/

助けてください。

ビューファイルにアップロードするためのコードは次のとおりです。

  <% form_for [:admin, @new_image], :html => { :target => 'upload_frame', :multipart => true } do |f| %>
    <%= hidden_field_tag :update, 'product_images'%>
    <%= f.hidden_field :image_owner_id %>
    <%= f.hidden_field :image_owner_type %>
    <%= f.file_field :image_file %><br />
    or get image from this URL: <%= f.text_field :image_file_url %>
    <%= f.hidden_field :image_file_temp %><br />
    <%= f.submit "Upload Image" %>
  <% end %>

そしてコントローラービューで:

  def create
    @image = Image.new(params[:image])
    logger.debug "params are #{params.inspect}"
    if @image.save
      logger.debug "initiating javascript now"
      responds_to_parent do
        render :update do |page|
          logger.debug "javascript test #{sortable_element("product_images", :url => sort_admin_images_path, :handle => "handle", :constraint => false)}"
          page << "show_notification('Image Uploaded');"
          page.replace_html params[:update], :partial => '/admin/shared/editor/images', :locals => {:object => @image.image_owner, :updated_image => @image}
          page << sortable_element("product_images", :url => sort_admin_images_path, :handle => "handle", :constraint => false)
        end
      end
      #render :partial => '/admin/shared/editor/images', :locals => {:object => @image.image_owner, :updated_image => @image}
    else
      responds_to_parent do
        render :update do |page|
          page << "show_notification('Image Upload Error');"
        end
      end
    end
  end

または、質問を言い換えると:

これを実行する:

  page.replace_html params[:update], :partial => '/admin/shared/editor/images', :locals => {:object => @image.image_owner, :updated_image => @image}
  page << sortable_element("product_images", :url => sort_admin_images_path, :handle => "handle", :constraint => false)

ソート可能なリスト機能は追加されません。

助けてください、

ありがとうございました

4

2 に答える 2

0

問題は、ページが最初に読み込まれたときにソート可能ファイルが作成されることだと思います。私はこの問題に数回遭遇しました。リストに新しい要素を追加すると、新しい要素を並べ替えに含めるには、並べ替え可能な関数を再度呼び出す必要があります。

私はプロトタイプ/スクリプトに精通していませんが、ソート可能な要素に、リストに要素を追加するイベントをリッスンさせる方法があるかもしれません。jQueryには、DOMに追加された新しい要素に応答する一連の再バインドイベントがあり、他のライブラリと同様のものである可能性があります。

于 2010-04-11T01:18:26.637 に答える
0

それを見つけた!

それ以外の:

  page.replace_html params[:update], :partial => '/admin/shared/editor/images', :locals => {:object => @image.image_owner, :updated_image => @image}

使用する

  page.replace params[:update], :partial => '/admin/shared/editor/images', :locals => {:object => @image.image_owner, :updated_image => @image}
于 2010-04-13T16:41:08.690 に答える