0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的なまとめAdvent Calendar 2023

Day 23

Ruby on Railsを触ってみた

Last updated at Posted at 2023-12-23

はじめに

この記事は、Qiita Advent Calendar 23日目の記事です。
以下の記事より、すべての記事をご覧になれます。

筆者について

  • 現在高校2年生
  • 水泳部マネージャー
  • 生徒会長
  • とある団体の代表

本編

僕自身普段からRubyを触ることは全くないんですが、これを機会に触ってみることにしました。

①インストール

shell
ruby --version
#ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin23]

gem install rails

さて、「よし、これでやっと触れる!」と思ってみたのですが…。

zsh
rails
#Rails is not currently installed on this system. To get the latest version, simply type:
#
#    $ sudo gem install rails

#You can then rerun your "rails" command.

ということで、とりあえずQiitaで調べてみると、hashが原因らしく、以下のコードを実行すると直すことができました!

shell
hash -r
rails -v
#Rails 7.1.2

さて、続きをやっていきましょう!

②プロジェクトの作成

プロジェクトの名前はあまり気にしないでください。とりあえず、実行してみましょう!

shell
rails new prv_pg_ruby-on-rails
#長いので割愛

cd prv_pg_ru*
bin/rails server

見事下のような画面が出てきたら成功です。

Screenshot 2023-12-24 at 05.27.34.png

続きをやっていきましょうか。

③Helloを表示できるようにする。

Routeを追記します。

/config/routes.rb
Rails.application.routes.draw do
  # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html

  # Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.
  # Can be used by load balancers and uptime monitors to verify that the app is live.
  get "up" => "rails/health#show", as: :rails_health_check
+  get "/articles", to: "articles#index"

  # Defines the root path route ("/")
  # root "posts#index"
end

Contlolerを作成します。

shell
bin/rails generate controller Articles index --skip-routes

続いて、/app/views/articles/index.html/erbを編集します。

index.html.erb
- <h1>Articles#index</h1>
- <p>Find me in app/views/articles/index.html.erb</p>
+ <h1>Hello, Rails!</h1>

これで、http://[::1]:3000/articlesにアクセスしてみましょう、見事にHello Railsが表示されています。

Screenshot 2023-12-24 at 05.37.04.png

ここまでやってみて好きだったところ

まず、個人的に/config/routes.rbの書き方がとても好きでした。DjangoだとメソッドはViewのデコーレーターで表現するものですから、それに比べるととても直感的です。

django
@api_view(['POST'])
def postMet(request):
  return JsonResponse({test:test})

ルートの書き方が直感的でかなりこれは好印象でした。

なぜやってみたのか。

これは簡単な理由で、Rubyがまつもとゆきひろさんによって作られた言語だったからです。日本人が作った言語であるRubyはどのような使い方をするのががとても気になり、今後使う可能性が一番でかいRuby on Railsの挙動を確かめてみることしました。

ただ、これを今後使うことはおそらくないです。というのも、僕はバックグラウンドの多くをGoogle系のサービスで固めており、これにRubyが対応していることはまあまあ稀だからです。ということで、それらに僕一人の開発で対応するのは非常にコストが高いため、おそらくRubyを採用することはないでしょう。とはいえ、日本人開発者としては知っておかなければいけない言語ですので、これを機に触れてみた次第です。

最後に

本日は技術系最後の記事で、Ruby on Railsに挑戦してみました。正直、Flutterを触っているときにRubyのCocoapods関係で苦労した記憶しかなかったので怖かったのですが、使ってみるととても使いやすいものでした。明日以降は僕の高校生での開発まとめと来年以降に何をしたいかなどについてまとめたいと思います。それでは残り少ないアドカレ 23 の記事をお楽しみにしてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?