Help us understand the problem. What is going on with this article?

Lotusを使った日本で初めてのアプリケーション(Part2)

More than 5 years have passed since last update.

Lotusを使った日本で初めてのアプリケーション(Part1)の続き

Part2(ルートの設定)

今回は、基本となるベースルートの作成から、ルーティングの設定について説明して行く。
(環境は前回と同じVagrant環境を使う)
より詳細なことはLotus::Routerを参照。

準備

lotusに書いてあるのを参考に

$ lotus new lotus_blog
$ cd lotus_blog && bundle install
$ lotus server -p 2300 --host=0.0.0.0

をする。そうしたら、http://192.168.33.10:2300/
にアクセスすると
lotus basic view
という画面がでる。

基本的なアクセス

ルーティングは基本的に上記のlotus_blogの場合、
lotus_blog/apps/web/config/routes.rbに各種ルーティングの設定をしていく。
例えば、ルートディレクトリのコントローラをlotus_blog/apps/web/controllers/home/index.rbに設定しようとしたら

get  '/',            to: 'home#index'

と追加する。(getの場合)
他にも、パラメータを受け取りたかったら

get  '/article/:id', to: 'home#article'

などとする。
http://192.168.33.10:2300/article/1
にアクセスすると、パラメータ(id=1)を渡すことになる。

また、postアクセスも簡単に

post '/api/tags',    to: 'api#tags'

のように指定することができる。(この場合、コントローラの場所はlotus_blog/apps/web/controllers/api/tags.rb)

コントローラの指定

基本的にはMVCの考え方でいいので、各ルートが各コントローラに対応する。
コントローラの指定は、

post '/api/delete/article', to: Web::Controllers::Api::Delete::Article

のように、直にクラスから指定することもできる。
その他に、下記のようなルートの設定方法がある。(Lotus::Router)からの引用

RESTful Resource:

router = Lotus::Router.new
router.resource 'identity'

It will map:

Verb Path Action Name Named Route
GET /identity Identity::Show :show :identity
GET /identity/new Identity::New :new :new_identity
POST /identity Identity::Create :create :identity
GET /identity/edit Identity::Edit :edit :edit_identity
PATCH /identity Identity::Update :update :identity
DELETE /identity Identity::Destroy :destroy :identity

もしも、全てのアクセスポイントが必要でない場合には下記のように個別指定もできる。

router = Lotus::Router.new
router.resource 'identity', only: [:edit, :update]

※ 基本的な部分はRuby on Railsと同じなので、参考にされたし。
※※ より詳細な説明が必要な場合は、Lotus::Routerを参照

yamadagenki
プロダーツプレイヤーやっています。 趣味でプログラミングやっているので、それ関連のことを書きます。
https://yamadagenki.github.io/xushengbo/
ventus
スポーツ選手の電子トレーディングカードサービスwhooop!を開発・運営するスタートアップ
https://whooop.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away