私のアプリケーションのすべてのページで、現在のページのJSONバージョンへのリンクが必要です。これを行うためのすてきなトリックですか? URLに「&」というパラメータが追加されていると、複雑になっていました。URLをJSONバージョンに変換していますか?
'/users' => '/users.json'
'/users?page=1&per_page=5' => '/users.json?page=1&per_page=5'
私のアプリケーションのすべてのページで、現在のページのJSONバージョンへのリンクが必要です。これを行うためのすてきなトリックですか? URLに「&」というパラメータが追加されていると、複雑になっていました。URLをJSONバージョンに変換していますか?
'/users' => '/users.json'
'/users?page=1&per_page=5' => '/users.json?page=1&per_page=5'
A
ので、URLはとして転置されるだろう修正を加えたGet url for current page, but with a different formatからこの答えのためttribution、:
ヘルパー:
def current_url(new_params)
url_for params.merge(new_params)
end
リンク:リンクはのために異なるだろうので
<%= link_to "JSON of this page", current_url(:format=>:json)
これを試してみてください:
polymorphic_path(@user, :format => :json)
(このAPI docに見られるように)代わり
:
user_path(:id => @user.id, :format => :json)
は、私は、すべてのページのJSONバージョンへのリンクが必要ですそのページのパスと私は1つ、または多くの関連オブジェクトを持っている可能性があります。現在のページの名前付きパスをgitし、:format =>:jsonを追加する方法はありますか? –
私は[この質問](http://stackoverflow.com/questions/5913525/get-url-for-current-page-but-with-a-different-format)が見つかりました。 –
もお手伝いします。ロケールを設定するのに現在のページを保持するには、例えば 'url_for(:locale =>:en)'を使用します。これは ':locale'と連動するので、おそらく':format'で動作します –
あなたが引用した質問では、それらを使用する前にパラメータを複製する必要があります。とにかく、あなた自身の答えを受け入れてください。 –
「url_for params.merge(new_params)」の代わりに、「url_for:params => params.merge(new_params)」の要件が異なりました。 –
ooops申し訳ありませんが、私は 'merge'の代わりに' merge! 'を読んでいます。 –