Rails エッセイ

Ruby on Railsで挫折しないための学習の進め方

Ruby on Railsを4、5年前から触っています。最近はPythonのウェブアプリフレームワークであるDjangoを使っていますが、その前はRailsをかなりやっていました。私自身Railsはその難易度から3,4度挫折しています。それの原因はRails特有の意味不明なバグでだったり、自分の英語力と問題解決力だったり、ウィルパワーだったり色々ですが、そこで少しRailsの挫折しないための学習の進め方について私の考えをメモしたいと思います。

Shou Arisaka
1 分で読める
2018年9月30日

<> Ruby on Railsを4、5年前から触っています。最近はPythonのウェブアプリフレームワークであるDjangoを使っていますが、その前はRailsをかなりやっていました。私自身Railsはその難易度から3,4度挫折しています。それの原因はRails特有の意味不明なバグでだったり、自分の英語力と問題解決力だったり、ウィルパワーだったり色々ですが、そこで少しRailsの挫折しないための学習の進め方について私の考えをメモしたいと思います。 </>

いきなり全部理解しようとしない

Railsは僕や皆さんが思っている通り、実際のところ、かなり複雑で難しいです。 Railsに限った話ではないですがDjangoとかLaravelとかウェブアプリフレームワークの類は敷居が高いと思います。node.jsのExpress.jsとかRubyのsinatraとかライトウェイト系のウェブライブラリは機能にしても潜在するバグにしても覚えることは特に多くないので比較になりませんが、ウェブアプリフレームワークに関しては始めるなら覚悟が必要です。

そして、それらをすぐに理解しようとしないことです。 具体的には、例えばRailsで覚えておくべきコマンドは、以下だけです。

  • rails g controller dev
  • rails g model user name:text
  • rails c

そして、Railsを触る上で、見るべきファイルは、この3つだけです。

  • app/controllers/dev_controller.rb
  • app/views/dev/index.html.erb
  • config/routes.rb

まずはここからです。いきなりCRUD実装しようとか考えない方が懸命です。

あとは、最初のアプリ作成で使用する、rails newですが、これもたくさんオプションがあります。 詳しい人は、「どうしてもMysql(postgres)でやりたい」と思うかもしれません。しかし、それはNG。 SqliteとMysqlで違うのが、config\database.ymlを書き換えるかどうか、だけだと思っていたら大間違いで、他にも違いはありますし、何かあったときの対処も違います。

モデルを使う上で、データベースが孤立しているとどうしても学習しづらいです。僕も最初からMysqlでやろうとして、挫折しました。 SQLは使えましたし、RubyでMysqlのマッパーを使ったりもしてたので、できるだろうと考えていたのですが、実際には…

この3つのファイルだけでも、ユーザーからデータを受け取り、それをRubyで加工して出力する、っていうウェブアプリの基本はできます。 いわゆるシングルページアプリケーションです。

これだけで、Ruby自体でできることは全て可能ですので。どんな複雑なスクリプトでも、ウェブアプリとしてユーザーに操作してもらうことができます。

ここからは、Ruby関係なしに、ウェブサイトの構成の問題、つまり、Railsの問題になります。

Railsチュートリアルをやろうとしない

Railsチュートリアルを初心者に勧める人は結構います。

しかし、僕は敢えておすすめしません。僕も3章まで初心者の頃に読み進めていますが、とにかく冗長な説明が多い。 あったら便利な知識だし、後に必要におそらくなるものだと思います。けれど、それをいちいち読んで理解してから進んでたら疲れます。結果、進捗が遅くなり、モチベーションが続かなくなります。(これについてはウィルパワーや事前知識の個人差とかあると思います。会う合わないはあると思いますのでそこは私の意見の同意できそうなところだけ参考にする検討をしてみてください。ちなみに自分はINTPです。)

プログラミングにしてもRubyにしてもRailsにしても、いきなり網羅的に、一気に全てを理解するには、内容が多すぎます。 こういうものは、自分でやりたいことや必要であることをやっていって、分からないことが出てきたらそこで初めて調べていく、それの積み重ねなんだと思います。

## (免責と追記)

この記事は半年以上前に書かれたものをそのまま少し編集して投稿したものです。矛盾したこととか変な事を言っている場合がありますが、全く参考にならないということはないだろうという考えのもと投稿を決めた記事になります。

この記事をシェア

Shou Arisaka 2018年9月30日

🔗 リンクをコピー