🕌
RailsのAPIモードで画面(View)を作る
結論
Railsでコントローラーを作成すると ApplicationController
を継承しています。それを ActionController::Base
を継承するように変更するだけです。
class ArticlesController < ApplicationController
end
↓
class ArticlesController < ActionController::Base
end
※APIモードで作成した場合、 ApplicationController
は ActionController::API
を継承するようになっています。
class ApplicationController < ActionController::API
end
注意点
APIモードでRailsアプリを作成すると、アセットやCookieなどのブラウザに関連する機構が追加されなくなるため、リッチなスタイルやJavaScriptを使った画面を作るのは難しくなります。
更にRailsにデフォルトで組み込まれるCSRF対策の機能も除外されるため、ユーザーの目に触れるフォームなどに使用するのも危険でしょう。
調べてみると form_with
でPUTが使えなかったりと、色々と問題点もあるようなので、想定した画面を作ることができるかを一度調査してから使用することをお勧めします。
使えそうなユースケース
で、これいつ使うの?と思われる方も多いかもしれません。個人的にも諸手を挙げてお勧めできるものではないですが、リソースの少ないスタートアップでは時間を節約するために下記のようなケースで使用できるかもしれません。
- 一時的に静的なページを配置しておきたい
- 特定の機能に絞った社内向けの管理画面を最速で作りたい
いずれのケースにしても永続的ではなく一時的な対応になることは変わりないとは思うので、使い所はよく考えて使うようにしましょう!
Discussion