Railsチュートリアル 8章完了まで
bootstrap先生のパワーもあるとは思いますが、
見た目的にもそれっぽくなってきたような気がします。
ここまでで気付いたところなど。
scaffoldって使わない?
まだ先の章を見ていないのでなんともいえませんが、
scaffoldが登場しないなとふと気づきました。
初心者向けの書籍やサイトを見ていると必ずといっていいほど
といったパターンが多いと思います。
そういうもんなのだな、と勝手に思っていましたが、
今のところRailsチュートリアルでは出番なしです。
ふと、scaffoldって実務だと使わないのか?という考えにいたり、
調べていると、参考になりそうなエントリがいろいろと。。
RailsのScaffoldは単なるマーケティングツールで実際の開発では使わない? - QA@IT
Rails Q&A「Scaffoldで作成されるテストはそのまま使うべきか?」 - give IT a try
いまのところ
「使わないことはないけど、フル活用するわけではない」
と勝手に解釈しています。
たしかに初めてscaffoldを使ってみたときには、「すげー!』と思いましたが、
勝手にあれだけの量のソースを生成されるのは若干不気味な感じもしました。
個人的には1つずつアクションを作っていくほうが好みかも?
remember_token を追加する箇所が通らない
Userモデルに remember_token
というカラムを増やすところで、
なんだかうまく追加できない事象に陥って少しハマりました。
結果、以下手順で解決
rails s
でサーバを起動している場合、一旦止めるrake db:migrate:reset
rake db:migrate:reset RAILS_ENV=test
ポイントは
- いちどサーバを止める
- test環境向けにもmigrateを流す
の2点でした。
普通にやっていれば問題なくいけるのだと思いますが、
私の場合、一度空のmigrationファイルを実行してしまってからおかしくなりました。
上記 remember_token のテストでコケる
8.18、以下テスト実行です
rspec spec/models/user_spec.rb
エラー内容
`method_missing': undefined method `its' for RSpec::ExampleGroups ::User::RememberToken:Class (NoMethodError)
原因
itsメソッドがRspec3.0以降で消滅しているらしい。
expectを利用した形式に書き換えればokだった。
(チュートリアル内にも、"itsはこれと同義だよ!"みたいな記述はある)
ただ、ワンライナーを意識する場合には以下のように置き換えるといいっぽい
it { is_expected.not_to be_blank }
database_cleanerがインストールできない
GemfileにGithubへのURLも記載しているが、いらないっぽい
gem 'database_cleaner', github: 'bmabey/database_cleaner'
↓
gem 'database_cleaner'
8章まで終えて
アプリ固有のモジュールってどこにおけばいいんだ?
というのがいまひとつ解ってなかったのですが、
普通にHelperに書いても良い感じなのですね・・・
viewからの参照用のメソッドのみを定義するものかと思ってたのですが、
普通にcontrollerでincludeして使っていい感じのようです。
(お仕事で利用されている方からしたらどうなのでしょう?)
とはいえ、大きいモジュールになってくると
なんでもかんでもHelperにいれてたら大変なことになりそう。
concernを使う?lib配下に置くのか?
課題として覚えておこう・・・