1

私のレールアプリにネストされたソート可能を取り込もうとしています。私は Mongoid と Ancestry gem を使用しており、parent_idNested-Sortable を使用してドラッグ アンド ドロップでカテゴリを更新するページを作成しようとしています。

実験しようとしましたが、それを読み取るコントローラーを作成するために NestedSortable が何を吐き出すのかよくわかりません。

私のコントローラーには次のものがあります:

def sort
  Category.update_all({parent_id: params[:parent_id].to_i})
  render nothing: true
end

ルート:

resources :symbols, :as => :categories, :controller => :categories do
  collection {post :sort}
end

Reorder.js.coffee:

jQuery ->
  $('.reorder-tree').nestedSortable
    handle: '.handle'
    items: 'li'
    toleranceElement: '> div'
    update: ->
      $.post($(this).data('update-url'), $(this).nestedSortable('serialize'))

そして、私の並べ替えビューは次のようなものを吐き出します:

<ol class=reorder-tree>
<li id="category_513d372b10188f9b6b000014"><div>
  <i class="icon-move handle"></i>
  <a href="/symbols/chickne">Chickne</a>
  <span class="btn-group show-on-hover">
    <a href="/symbols/new?parent_id=chickne" class="btn btn-micro" data-remote="true" title="Add Sub-Category"><i class="icon-plus"></i>
    </a>
    <a href="/symbols/chickne/edit" class="btn btn-micro"><i class="icon-pencil"></i>
    </a>
    <a href="/symbols/chickne" class="btn btn-micro" data-method="delete" data-remote="true" rel="nofollow" title="Delete Category"><i class="icon-remove"></i>
    </a>
  </span>
</div>
<ol class="visible"><li id="category_513d373310188f9b6b000016"><div>
  <i class="icon-move handle"></i>
  <a href="/symbols/smoking-babies">Smoking Babies</a>
  <span class="btn-group show-on-hover">
    <a href="/symbols/new?parent_id=smoking-babies" class="btn btn-micro" data-remote="true" title="Add Sub-Category"><i class="icon-plus"></i>
    </a>
    <a href="/symbols/smoking-babies/edit" class="btn btn-micro"><i class="icon-pencil"></i>
    </a>
    <a href="/symbols/smoking-babies" class="btn btn-micro" data-method="delete" data-remote="true" rel="nofollow" title="Delete Category"><i class="icon-remove"></i>
    </a>
  </span>
</div>
<ol class="hide"></ol>
</li>
</ol></li>
</ol>

どんな助けでも感謝します、ありがとう。

4

1 に答える 1

0

Nested Sortable から取得した配列を真剣にいじった後、コントローラーでこれを使用してこれを機能させることができました。

  def sort
    # html = "Env: #{Rails.env}. "
    # infor = params[:category]
    params[:category].each do |id, attr|
      thisCat = params[:category][id]
      @category = Category.where(:_id => id).first
      # html << "ID= #{id} , thisCat= #{thisCat} Name= #{@category.name} Parent= #{@category.parent_id} ; "
      unless thisCat == "null"

        @category.parent_id = thisCat.to_s
        @category.save
      end
    end
    # flash[:alert] = html
    # flash[:error] = infor
    # render nothing: true
  end

動作させた後にコメントアウトした内容を見ることができます。それがすべてのデバッグ フラッシュ ステートメントです。

乾杯!

于 2013-03-12T15:00:14.273 に答える