3

rails_admin でドラッグ アンド ドロップによる画像の関連付けを構築しようとしています。

場所モデルとその場所に関連する多くの画像があります。画像は前にアップロードされ、場所に関連付けられます。

rails_admin でカスタムアクションを作成しました。

rails_admin.rb

# Registering Custom Actions
  module RailsAdmin
    module Config
      module Actions
       class ImageAssociate < RailsAdmin::Config::Actions::Base
        RailsAdmin::Config::Actions.register(self)
       end
      end
    end
  end

# Adding Custome action to RA actions
  config.actions do
    dashboard
    index
    new

    show
    edit
    delete
    image_associate
  end

libディレクトリのrails_admin_image_associate.rb

require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'

module RailsAdminImageAssociate
end

module RailsAdmin
  module Config
    module Actions
      class ImageAssociate < RailsAdmin::Config::Actions::Base

        register_instance_option :link_icon do
          'icon-picture'
        end

        # Its Memeber Function
        register_instance_option :member do
          true
        end


        register_instance_option :controller do
        Proc.new do
          @associated_images = @object.images
          @images = Image.all - @associated_images
          # binding.pry
          @image_type = @images.collect(&:asset_type)

          # flash[:notice] = "You have approved the review titled: #{@object.name}"
        end
       end
      end
    end
  end
end

rails_admin.rb に追加しました

require Rails.root.join('lib', 'rails_admin_image_associate.rb')

ビュー/レール_管理者/メイン/image_associate.rb

<%= stylesheet_link_tag "rails_admin/image_associate.css" %>

<div id="all_images" class="span4">
    <select name="image_type" id="image_type">
        <option value="all">all</option>
        <% @image_type.each do |type| %>
            <option value="<%=type%>"><%=type%></option>
        <%end%>
    </select>
    <% @images.each do |image| %>
        <img src="<%=image.file.thumb%>">
    <%end%>
</div>
<div id="associated_images" class="span7">
    <% @associated_images.each do |aimage| %>
        <img src="<%=aimage.file.thumb%>">
    <%end%>
</div>

<div class="clearfix">

</div>

次に、選択ボックス「image_type」で「変更イベント」をトリガーする必要があります。rails_admin の「ui.js」をオーバーライドし、カスタム js ファイルを含めました

asset/javascript/rails_admin/custom/ui.js

//= require_tree .

asset/javascript/rails_admin/custom/image_associate.js

$('#image_type').on('change',function () {
alert("change triggered");
});

このファイルがフロントエンドにロードされていることがわかります。しかし、イベントはトリガーされません。

スクリーンショット

ここに画像の説明を入力

4

1 に答える 1

4

試す:

$(document).on('change', '#image_type',function () {
  alert("change triggered");
});
于 2013-08-18T06:04:12.973 に答える