虎の穴開発室ブログ

虎の穴ラボ株式会社所属のエンジニアが書く技術ブログです

MENU

未経験者がRuby on Railsを学習してみた

みなさんこんにちは!

週末、自宅に ハイゼンスレイII が2箱届いて、積んでいるラボの おっくん です。
10月に中途入社した私が、現在の研修を通じて学んでいるRuby、Ruby on Railsで苦戦したことのいくつかを紹介します。

エンジニア経歴

エンジニア7年目

  • Perl :2年
  • PowerShell :3年
  • ASP.NET :1年
  • JavaScript :3年

元々、Webエンジニアではありませんでした。

研修

研修では、

  • ユメノソラホールディングスと、とらのあなが運営するサービス調査
  • 業界調査

といった自社理解・業界理解の内容を経て、ジョインするチームの内容に合わせた技術のキャッチアップを行います。

私の場合は、Ruby on Railsの研修です。
入社以前はRuby on Railsの経験は、ほとんどありませんでした。
この辺りは少し心配な点ではあったのですが、
周囲のエンジニアの方達に伺うと、同様に入社前のRubyとRuby on Railsの経験者は多くなく、
入社してから技術を習得した方がほとんどでした。

作成物

Ruby on Railsの学習を進めるにあたって、ToDoアプリの作成を行うことになりました。
作成するToDoアプリの要件は、自分自身で以下の通り定めました。

  • 認証の仕組みを持つこと
  • 認証したアカウントに紐付いたToDoの投稿・表示ができること。

以上の要件を達成しながら、Ruby on Railsの基本的仕組みを学んでいくことにしました。

完成品

完成したアプリの画面は以下のとおりです。

f:id:toranoana-lab:20191028191430p:plain

実行環境

  • Ruby 2.6.0
  • Rails 6.0.0

追加して利用しているライブラリ

gem

rubygems.org

メールアドレスとパスワードによる認証機能を提供できるパッケージとして deviseを使用しています。
今回の研修の次の課題でも使用しているので、事前学習の意味も込めて使用しました。

css

getskeleton.com 装飾のうるさくないシンプルなCSSライブラリながら、グリッドレイアウトなど便利なため、
好みで使用しています。

学んだこと

これまで主にJavaScriptを使ってコーディングしていた私から見た、
RubyとRuby on Railsでの特徴と、苦戦したこと事柄をいくつか挙げてみます。

  • Ruby について
    • ブロック構文
      Rubyで導入されているブロック構文が、最初は見慣れない構文だったので苦戦しました。
      Ruby on Railsではテンプレート内でのリストやフォームの作成にブロック構文が使用されており、
      この点を押さえるとその後の学習が進めやすかったです。
list=[1,2,4,8,16]
  
list.each do |val|
  puts val
end
  • Ruby on Rails について
    • コントローラ
      コントローラで定義された変数が、実行の対象になっているアクションの中で明示的に変数をテンプレートに渡さずとも、参照できるので注意する必要があると思いました。    
class PostsController < ApplicationController
  before_action :set_post, only: [:show, :edit, :update, :destroy]
  # 省略

  def show
    # showメソッド内で明示的に@postをshow.html.erbへ与えずとも@postを参照できる。
  end
  
  private
  def set_post
    @post = Post.find(params[:id])
  end
  # 省略
  • ルーティング
    ルーティングはresourcesget , post 等とオプションを使って階層的に記述します。
    研修時でもこの部分にはかなり詰まってしまいましたが、
    都度rails routesを実行し設定されたルーティングを確認しながら進めることで、見通しが良くなりました。
Rails.application.routes.draw do
  resources :users ,only: [:index] 
  resources :posts
  root `users#index`
end

まとめ

学習を進める中で Ruby on Rails の考え方にもいくらか慣れてきたので、
研修後半は「何を操作するのか」「次の手順は何か」といった勘所もつかめてきました。

Ruby on Railsを学習する中で、

  • CSRF対策やStrong Parametersによるセキュリティの担保
  • Active Recordによるデータベース連携が標準で用意されている

という特徴を掴むことができました。

今回は学習する中で詰まってしまった部分もありましたが、
Ruby on Railsの特徴を有効に活用して、開発を進めていきたいですね。

P.S.

虎の穴では一緒に働く仲間を絶賛募集中です! この記事を読んで、「Ruby未経験だけど大丈夫そう!」と思った方はぜひ弊社の採用情報をご覧下さい。 yumenosora.co.jp

11/13(水)には第二回となるアーツ千代田での説明会を行います。こちらも是非ご応募ください!

yumenosora.connpass.com