掲示板実装② 学んだこと一覧
今回の実装を通して新たに学んだ知識が色々あった。 その中でも、実装時にエラーが出て詰まってしまったことや、特に印象に残った知識を箇条書きにしてまとめようと思う。
・belongs_to :user
で、UserモデルとBoardモデルを関連付けていれば、
validates :user_id, presence: true
のコードは不要。
・seed.rb内で、boardのサンプルを自動生成する際のuserについて、
user = User.all.sample
自分は上のコードで実装したのだが、これだと処理が重くなってしまうので下のコードがベター
User = User.offset(rand(User.count)).first
・データベースを全て削除し、schema.rbとseed.rbを再読み込みしてサンプルデータを生成し直すときは、bin/rails db:reset
コマンドを使う。
・bootstrapのコードについて
<div class="col-sm-12 col-lg-4 mb-3">
Viewファイルでよく見かけるこのコードの意味について簡単に。 Bootstrapでは横の行を12のカラムに分割し、1つの要素でそのうちの何カラム分を使うか指定することができる。 それがこのコード
col-sm-12
は、smallサイズのディスプレイ(スマホなど)では一つの要素で丸々12カラム使うよ〜という意味
col-lg-4
は、largeサイズのディスプレイ(pcなど)では4カラム分使うよ〜という意味。
なので、前者では全てが縦に。後者では12/4の3つが横並びになることを意味する。
・config/application.rb内のコード
config.active_record.default_timezone = :local
このコードは非常に忘れやすいコードだが、DBに記録されているタイムゾーンを読み書きする際にどの時間が反映されるかを指定している。
:localとしておくと、システム(自分のPC)の時間が反映される。
config.time_zone = "Tokyo”
と記載し、railsアプリの時間も日本時間にしておくことで、DBとアプリ、パソコンの時間のズレをなくすことができる。