Rails 3.0.7 アプリで多くのパラメーターを指定して link_to ヘルパーを使用すると、Activesupport ドキュメントの Hash の to_param メソッドでおそらく言及されているように、辞書順に並べ替えられた URL が生成されます。例えば
link_to "my Link", {:u=>"user", :q=>"some query", :page=>"4"}
生成する
"/search?page=4&q=some+query&u=user"
しかし、私が欲しいのは
"/search?u=user&q=some+query&page=4"
link_to または url_for への params ハッシュで提供されているカスタムソートを実行できる人はいますか?
何かが欠けていない限り、これは link_to のドキュメントに示されている例と矛盾しているようです (ri link_to
またはファイル内のいずれか)/gems/actionpack-3.0.7/lib/action_view/helpers/url_helper.rb:215
# link_to "Nonsense search", searches_path(:foo => "bar", :baz => "quux")
# # => <a href="/searches?foo=bar&baz=quux">Nonsense search</a>
もちろん、次のように手動で URL を作成することもできます
link_to "my Link", "/search?u=#{user}&q=#{query}&page=#{page}"
しかし、それには「Railsの方法」がなく、特定の文字のエスケープに問題があるため、最後のオプションになります。