私のレールアプリで私のルートにfriendly_idを使用しています。文字列に数字だけが含まれているかどうかを確認
ページに数値IDでアクセスできないようにしたいと考えています。
ページは、このようなアクセス可能である -
www.myurl.com/myfriendlyidstubページは次のようにアクセスすべきではない - www.myurl.com/12345(12345はmyfriendlyidstubのIDである)
friendly_idのドキュメントでこれを行う方法がわかりません。
だから私は、paramは二つの質問
def edit
if params[:id].is_numeric? #I need to know how to write this method
not_found #not_found redirects to a 404
end
#rest of the edit action
end
数値であるかどうかを確認するために私のコントローラ内のメソッドを追加することを検討しています - 私は「IS_NUMERIC」メソッドを書くにはどうすればよい
?
これは良い方法ですか?どんな落とし穴も見えますか?
[このリンク](http://railsforum.com/viewtopic.php?id=19081)を参照してください。私はあなたが好きであれば、自分自身でルートの正規表現をすることができると思うが、そのようなアプローチでは問題は見られない。 – aishwarya
もう1つ注意してほしいのは、ホワイトリスト化はブラックリスト化よりも優れたアプローチです(無効な入力を指定するのではなく、有効な入力を指定する) –