個人アプリ開発 記事投稿機能作成

ユーザー新規登録・ログイン機能の実装が完了し、記事投稿機能作成に入っていきました。

作業内容

・リンク修正

先にリンクの修正を行いましたが、ここで思った実装になりませんでした。
リンク先に root_path を指定しようと思い、viewに下記記述をしましたが、

= link_to "水族館ログ", "/"

なぜかuser/root_pathを探しに行ってしまいました。

rails routesで確認すると、rootの上にたくさんrouteが。
routes.rbファイルでrootの記述を一番上に修正すると、
rootが一番上に来て、意図通り遷移することができました。

記事投稿機能作成スタート

1.controller、view、model作成
2.テーブル作成、modelアソシエーション設定

migrationファイル内のテーブル、modelファイル内のアソシエーションを記述していきました。
一対多と多対多の、それぞれの理解が曖昧だったの確認しつつ進めました。

migrationエラー

db:migrateをすると、下記エラーが出ました。

Mysql2::Error: Cannot add foreign key constraint:

外部キーが見つかりませんと言われてします。
原因は、まだ存在しないテーブルとの中間テーブルを先に作成したことでした。
migrationファイルはファイル名がタイムスタンプになっており、若い順に読み込まれる為、エラーが出ていました。
▶︎読み込み順を考え、migrationファイルの名称を変更。

3.新規作成機能

・contoroller編集
・view編集

ストロングパラメータ記述を再確認しました。
Railsでは、保存する前に必ずストロングパラメータを使って許可を行わなければ、データの保存がされないようセキュリティ対策が取られている。

ここまで進めましたが、ちゃんと保存がされないので、また明日調査していきます。