私は次のようにレールにAPIルートのセットを持っています
namespace "api" do
namespace "v1" do
resources :users do
resources :posts
resources :likes
...
end
end
end
ここまでは順調ですね。/ api / v1 / users / fred_flintstoneを取得して、そのユーザーのすべての情報を取得できます。
私が今やりたいのは、「私」(ala facebook)の概念を追加して、ユーザーが認証された場合(fred_flintstone)、次のこともできるようにすることです。
GET / api / v1 / me
/ api / v1 / me/postsを取得
..。
両方のルートセットが必要です。したがって、GET / api / v1 / me/postsまたはGET/api / v1 / users / fred_flintstone/postsのいずれかを使用して同じ結果を達成したいと思います。
私はルートチュートリアルを経験し、グーグルで検索したので、ポインターは直接の答えと同じくらい高く評価されます。
編集:
私がやったことはうまくいきましたが、かなりハッキーです。スコープを使用して、routesテーブルに2番目のエントリセットを作成しました。
scope "/api/v1/me", :defaults => {:format => 'json'}, :as => 'me' do
resources :posts, :controller => 'api/v1/users/posts'
resources :likes, :controller => 'api/v1/users/likes'
...
end
次に、params [:user_id]の存在をテストするset_userメソッドを追加しました。私はこれを乾かす方法を本当に探しています。