Saya mengalami kesulitan menambahkan parameter querystring ke link_to UrlHelper. Saya memiliki tampilan Indeks, misalnya, yang memiliki elemen UI untuk menyortir, memfilter, dan pagination (via will_paginate). Plugin will_paginate mengelola persistensi parameter querystring intra-halaman dengan benar.
Apakah ada mekanisme otomatis untuk menambahkan parameter querystring ke rute beri bernama, atau apakah saya perlu melakukannya secara manual? Banyak penelitian tentang konstruksi yang tampaknya sederhana ini membuat saya tidak mengerti.
Edit
Beberapa tantangan:
Jika saya memiliki dua parameter querystring, bucket & sorting, bagaimana cara menetapkan nilai tertentu ke salah satu di link_to, sambil mempertahankan nilai saat ini dari yang lain? Sebagai contoh:
<%= link_to "0", profiles_path(:bucket => '0', :sorting=>?? ) %>
Jika saya memiliki beberapa parameter querystring, bucket & sorting & page_size, dan saya ingin mengatur nilainya ke salah satunya, adakah cara untuk 'secara otomatis' memasukkan nama dan nilai parameter yang tersisa? Sebagai contoh:
<%= link_to "0", profiles_path(:bucket => '0', [include sorting and page_size name/values here] ) %>
Plugin will_paginate mengelola variabel halamannya dan variabel querystring lainnya secara otomatis. Tampaknya tidak ada elemen UI otomatis untuk mengelola ukuran halaman. Sementara saya telah melihat kode untuk membuat daftar pilih ukuran halaman, saya lebih suka memiliki elemen A untuk ini (seperti SO). Bagian dari tantangan ini terkait dengan # 2, bagian terkait dengan menyembunyikan / menunjukkan elemen UI ini berdasarkan keberadaan / tidak adanya catatan. Dengan kata lain, saya hanya ingin menyertakan tautan ukuran halaman jika ada catatan ke halaman. Selain itu, saya lebih suka memasukkan variabel QS lainnya secara otomatis (yaitu halaman, keranjang, penyortiran), daripada harus memasukkan mereka dengan nama di link_to.
sumber
Jawaban:
The docs API pada link_to menunjukkan beberapa contoh menambahkan querystrings untuk kedua bernama dan oldstyle rute. Apa ini yang kau inginkan?
link_to
juga dapat menghasilkan tautan dengan jangkar atau string kueri:sumber
Jika Anda menginginkan cara cepat dan kotor dan jangan khawatir tentang serangan XSS, gunakan
params.merge
untuk menyimpan parameter sebelumnya. misalnyalihat: https://stackoverflow.com/a/4174493/445908
Jika tidak, periksa jawaban ini: params.merge dan skrip lintas situs
sumber
Jika Anda ingin mempertahankan params yang ada dan tidak membiarkan diri Anda terkena serangan XSS, pastikan untuk membersihkan hash params, hanya menyisakan params yang dapat dikirimkan aplikasi Anda:
Jika Anda menggunakannya di banyak tempat, bersihkan params di controller:
sumber
Jika Anda ingin memberikan blok, katakanlah, untuk tombol glyphicon, seperti berikut ini:
Kemudian melewati querystrings params dapat dicapai melalui:
sumber