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をいじってなんとかした。もうちょっと調べて書き直す。