質問

私は使用しています Friendly_id Railsアプリのルート用。

数値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

2つの質問 -

「is_numeric」メソッドを書くにはどうすればよいですか?

これは物事をするのに良い方法ですか?落とし穴が見えますか?

役に立ちましたか?

解決

私はaを使用します before_filter すべての方法に貼り付ける前に。

ルーティングを構成することもできます セグメントの制約.

他のヒント

ルートの直後にユーザー名をパーマリンクとして持ちたいだけのように聞こえます '/' ...

config/route.rb
...
match '/:id' => 'controller#show'
...

その後、フレンドリーなセットアップを正しくセットアップすると、IDの代わりに名前として表示されるはずです。

ところで、Friendly_idを見つけてくれてありがとう、私は私のプロジェクトのためにそのようなものを探し始めようとしていました。

それが役立つかどうか教えてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top