隠し機能として,データダウンロードAPIを用意しておく.ネームスペースとしてAPIという別空間を用意しておき,そのなかでデータダウンロード用の手続きを実装する.
【手順】
vi config/routes.rb
(以下を追加)
Rails.application.routes.draw do
…(略)…
namespace :api, { format: 'json' } do
resources :users, :only => [:show]
end
end
mkdir app/controllers/api
vi app/controllers/api/users_controller.rb
(以下を作成)
class Api::UsersController < ApplicationController
def show
@user = User.find(params[:id])
ary = [@user]
ary.push(@user.posts)
render json: ary
end
end
このようにしておくことで,ユーザーごとの投稿データをJSON形式でダウンロードできるようになる.アクセスは,http://localhost:3000/api/users/{id}でよい.ブラウザからアクセスして確認してみること.
本来はデータ保護のため,ログインしないとアクセスできないようにしておくべき(before_ action authenticate_user! をきちんと書いておく)だが,プログラムからの一括ダウンロードを可能にしたいので,とりあえずはこのままにしておく.
0 件のコメント:
コメントを投稿