現在表示されているレコード(タグ付けに基づく)に類似したレコードをデータベースに照会しようとしています。これは作業中ですが、順序をランダム化したいと思います。
私の開発環境はmysqlなので、次のようにします。
@tattoos = Tattoo.tagged_with(tags, :any => true).order("RAND()").limit(6)
これは機能しますが、私の本番環境はpostgresqlを使用しているherokuなので、これを使用してみました:
@tattoos = Tattoo.tagged_with(tags, :any => true).order("RANDOM()").limit(6)
しかし、次のエラーが発生します。
ActionView :: Template :: Error(PGError:ERROR:SELECT DISTINCTの場合、ORDERBY式は選択リストに表示される必要があります
SELECT DISTINCT tattoos.* FROM "tattoos" JOIN taggings
tattoos_taggings_color_fantasy_newschool_nerdy_tv_477 ON
tattoos_taggings_color_fantasy_newschool_nerdy_tv_477.taggable_id = tattoos.id AND
tattoos_taggings_color_fantasy_newschool_nerdy_tv_477.taggable_type = 'Tattoo' WHERE
(tattoos_taggings_color_fantasy_newschool_nerdy_tv_477.tag_id = 3 OR
tattoos_taggings_color_fantasy_newschool_nerdy_tv_477.tag_id = 4 OR
tattoos_taggings_color_fantasy_newschool_nerdy_tv_477.tag_id = 5 OR
tattoos_taggings_color_fantasy_newschool_nerdy_tv_477.tag_id = 24 OR
tattoos_taggings_color_fantasy_newschool_nerdy_tv_477.tag_id = 205) ORDER BY RANDOM() LIMIT 6):