、それはこのようRails3のRESTデザインでコントローラ名を削除するには?ユーザーリソースを考えると
を行く/ユーザー/:短縮名
しかし、どのようにコントローラ名がちょうど
/を取得するために除去することができます:短縮名
どのように宣言することができますすべてのCRUD機能を瞬時に保ちながらroutes.rbでこれを実行しますか?
更新:thisを読んだ後、私はこのAPIライクなデザインをより良く扱うためにSinatra over Railsに移ります。ルートで
、それはこのようRails3のRESTデザインでコントローラ名を削除するには?ユーザーリソースを考えると
を行く/ユーザー/:短縮名
しかし、どのようにコントローラ名がちょうど
/を取得するために除去することができます:短縮名
どのように宣言することができますすべてのCRUD機能を瞬時に保ちながらroutes.rbでこれを実行しますか?
更新:thisを読んだ後、私はこのAPIライクなデザインをより良く扱うためにSinatra over Railsに移ります。ルートで
はカスタムマッチを定義します。
match ':shortname' => 'users#action'
がユーザーの要求を受け取ることになっている、アクションの名前と#アクションにアクションを交換してください。ルートファイルに適切な順番に配置することを忘れないでください。 Railsは、ルートファイルの各行を先頭から検索し、最初に一致するルートを選択します。 ':shortname'は/ usersを含む第1レベルのパスと一致します!したがって、すべてのリソースルートを含む第1レベルのパスを使用するすべてのルートの下に配置します。ここに例があります:
resources :users
resources :posts
match '/blog' => 'posts#index'
match ':shortname' => 'users#action'
はい私はそれを知っています。しかし、何らかの理由ですべてのCRUDアクションを追加しても機能しません。また、同じコントローラに対して各アクションを宣言することを避けるために、よりクリーンな方法がありますか? – Martin
、あなたは
resource :users, :path => '/:shortname'
期待通りにそれが出てくるかどうかを確認するためにそれを試してみてrake routes
ような何かを行うことができるはずです。
それは動作しません。これは基本的に/:shortname /:shortnameのコントローラ名を置き換えるだけです。 – Martin
あなたが何を意味するのか分かりません。 '/ users /:shortname'を意味しますか? –
権利が更新されました。 – Martin
私はこの質問が少なくとも3回前に尋ねられていると確信しています。私はそれらの1つに答えましたが、私はそれを見つけることができません... –