dm-tagsとwill_paginateをいっしょに使ったらエラー

dm-core 0.10.1
dm-tags 0.10.1
will_paginate 3.0.0 (agnostic)

INNER JOIN `taggings` ON `post`.`id` = `taggings`.`taggable_id`
INNER JOIN `taggings` ON `post`.`id` = `taggings`.`taggable_id`

あからさまにエラーが出るこんな部分を含むSQLがはかれていた。
詳細は今から調べる

irb(#<DataMapper::Query:0xb785548c>):005:0> @links[0].inspect == @links[1].inspect
=> true


   925      # @api private
   926      def normalize_links
=> 927        links = @links.dup # @links.length == 2

...

   953
   954              # set @repository when appending conditions
   955              original, @repository = @repository, DataMapper.repository(repository_name)
   956
   957              begin
# ここでrelationと同じsubject, value, modelのrelationがappend_conditionによって@linksに入れられてしまう。
=> 958                append_condition(subject, value, model)
   959              ensure
   960                @repository = original
   961              end
   962        end

ここまではわかった。ただ958行目で処理してrelationに入っているものと同じrelationがappend_conditionによって@linksに入れられてしまう状況が正しいのかどうかわからない。

とりあえずdm-coreをいじってなんとかした。もうちょっと調べて書き直す。