Rails入門者が知っておくとラクになるツボ
どんもー٩( 'ω' )و
TECH::EXPERT渋谷校68期@snskOgataです。
12月23日にTECH::EXPERTに入校して早1週間、この期間で周りの生徒さんたちが苦しんでた点、ここがわかると視界が晴れる要素、みたいなものが少し見えたので、Rails入門者の仲間たちに少しでも参考になれば、という記事です。
初めての投稿なのでお手柔らかにお願いします!(笑)
今回の記事の対象者としては、
参考書などを見ながら簡単なRailsアプリケーションを作ってみたけれど、あんまり理解できていない・・・
って方におすすめです!
まずは抽象的に結論からいうと
「全体を俯瞰して」「流れを掴む」こと
がRails入門者にとって感覚を掴む大きなきっかけになっているように感じています。
1.データの流れから見たMVCについて
この部分に関してはあまり躓いていた人は多くないのですが、この流れを踏まえてコーディングとエラー解決をしていくことになるので、サラッとおさらいです。
大まかな流れとしては、まずユーザがURLにアクセスするとルーティングファイルによってControllerの特定のアクションを呼び出します。
そこで必要であればModelのデータを取得、それを元にページを作成して、結果をユーザに返す、というのが大まかなデータの流れになっています。
2.作成に取り掛かる前に把握しておくといい事
7つのアクションについて
作成の流れ、に入る前に各アクションについても把握しておきましょう。
Railsでは7つの基本的なアクションを利用して開発することが推奨されています。
index, new, create, show, edit, update, destroyがその7つです。
自分がそうだったんですが、この7つのアクションについての把握が曖昧だと頭がこんがらがってしまってボーッとしてきます(笑)
これはDBを軸に考えると分類しやすいかな?
大雑把に説明すると、まずはDBの中身を弄るのはcreate, update, destroyの3種類だけ、ということ。
そしてそのうちcreateするためのフォームを用意するのがnew、updateをするためのフォームを用意するのがeditであるということ。
showとindexに関しては、DBから引っ張ってきたデータを描画しているだけ。
詳細には違ったりする(editはDBからデータを引っ張ってきてそれを使うし、showやindexのビュー内でDBに関与するアクションを呼び出したりもする)んですが、大まかにはこういうものだと理解しておくと、あまり混乱しなくて済むと思います。
逆に、この説明に反しているものは、他のアクション内で少し特殊なことをしていると考え、どの部分がそれを行っているのか探してみるといいでしょう。
自分の場合はnewとcreate、editとupdateがごっちゃになってました_(:3」∠)_
3.実際に作っていく上での流れ
今回は、例として’tweet’に関するMVCを作成していくていで話していきます。
バージョンはRails5台での記述となっております
0段階
まずは0段階として、rails g model tweet、rails g controller tweetsなどのコマンドを打って、モデルとコントローラーを生成します。
このときmigrationファイルやmodels/tweet.rbでモデルについての設定を行ったりでき(今回は詳細は割愛します)、
rails db:migrate (古いバージョンの場合は、bundle exec rake db:migrate)コマンドでDBにそれら設定が反映された形になります。
各アクションの作成
まずは、newについての作成の流れを見ていきます。
newアクションの作成
①Routingファイルに追記
resources :tweets, only: :new
②Controllerにnewメソッドを追加
def new
end
③アクション内で使うモデルの用意
@tweet = Tweet.new # これを上記関数内につっこむ
④ビューを作成
app/views/tweets/ new .html.erbを作成し、フォームを用意。
newアクションの作成はたったのこれだけで完成です!
続いてcreateアクションについても作成していきます。
createアクションの作成
①Routingファイルに追記
resources :tweets, only: [:new, :create] # newに加えてcreateもできるように
②Controllerにcreateメソッドを追加
def create
end
③アクション内で使うモデルの用意
Tweet.create(params[:tweet]) # これを上記関数内につっこむ ※本当はストロングパラメータの設定が必要
④ビューを作成
app/views/tweets/ create .html.erbを作成。
これでcreateアクションについても完成!
ここまで書くと勘のいい人は気づいたかもしれませんが、実はいずれのアクションでも
「ルーティングをして、アクションを宣言して、モデルを用意して、ビューを作成する」だけ なんです!
ちなみにcreateやdestroyしたあとのページは不要!って場合はビューを作らず別のページにredirectさせてもいいですね
4.今、自分が何を作ってるのかわからない
Railsで参考書なりを見ながら開発を進めていくと「今 自分がどこの部分の何をやってるのか」がわからなくなっちゃう人が多いみたいです。
かくいう自分も、最初はとりあえず提示されたコマンドを打って、コードをそのまま写すだけで、正直何をしてるのかわからなくなったりしてました(笑)
こういうときに有用なのが 全体を俯瞰して見てみること です。
0段階についても、とてもヘビーでかなり端折ってしまってはいますが、このように
「何に関しての」「どのアクションの」「RMVCのいずれなのか?」
と分解していくと、自分のやっている部分というのが見えてくる人が多いみたいです。
5.エラーの対処について
エラーに対する対処についても書きたいと思っていましたが、書くことって思っていた以上に時間がかかりまくって、これ以上は学習や睡眠に支障が出そうなので、また次回ということで!!
目を通していただきありがとうございました٩( 'ω' )و
Author And Source
この問題について(Rails入門者が知っておくとラクになるツボ), 我々は、より多くの情報をここで見つけました https://qiita.com/snskOgata/items/03b090af5334d559e31e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .