2

そのため、頭に頭をぶつけて、最終的に次のような必要なコードを書くことができました。

 = link_to 'Clear', params.merge(:teachers => {:sort_column => 'teacher_name', :sort_direction => 'desc'}), :class => 'btn'

params.mergeコマンドを使用したことに注意してください。

しかし今、Brakeman gem を実行したところ、params.mergeにはクロスサイト スクリプティングの脆弱性があると表示されました。

では、params.merge を使用しない同じコードをどのように書き直すことができるでしょうか?

4

1 に答える 1

0

paramsハッシュ全体を使用する理由はありません(使用しない理由はたくさんあります) 。URLを作成するために必要なパーツを引き出すだけです。同じアクションとコントローラーにリダイレクトしているので、それらを除外することができ、Railsはパスを把握します。

= link_to 'Clear', :teachers => ...

アクションとコントローラー以外に特定のパラメーターが必要な場合は、次の場所にそれらを追加できます。

= link_to 'Clear', :id => params[:id], :teachers => ...
于 2013-03-18T15:49:08.830 に答える