LoginSignup
0
0

More than 3 years have passed since last update.

ActionTextを使うときにユーザー情報の関連づけで詰まった話

Posted at

Rails6から出てきたActionTextというかんたんにブログ投稿ができるようになる機能があるのですが、これらを使うときにエラーになってしまったので共有します。

まずやりたかったこととしては、ユーザーの情報とこのブログの情報を関連づけさせたかったのですが、それらをするときにエラーになってしまいました。

しかし以下のようなエラーが出ました。

Mysql2::Error: Field 'user_id' doesn't have a default value

というエラーが投稿ボタンを押して投稿しよようとしたときに出てきました。
どうしてかというとマイグレーションファイルにある記述に問題がありました。
今回結構参考になると思います。

まずActionTextとはなにか

ActionTextとは何かというとかんたんにブログなどの長文のコンテンツを書くことができるものです。
全然違いますがはてなブログさんのようにブラウザ上でブログを書くことができます。

詳しい使い方はググってください、今回は私がどうしてミスったのかそこだけを解説していきます

まずActionTextを使うとマイグレーションファイルが生成されます

・ ブログ投稿に関するマイグレーションファイル
・ActionTextに関するマイグレーションファイル
今回のActionTextには画像投稿ができるのできるようにするための
・Active Storageのマイグレーションファイル

以上の3つが生成されます。
そして今回何故ミスったかというと、ブログ投稿に関するマイグレーションファイルには

      t.references :user, null: false, foreign_key: true

と記述してユーザーの情報を引っ張ってこようとしても何も問題はないのですが、ActionTextに関するマイグレーションファイルにその記述を書いてしまうとActionTextそのものにもユーザー情報が渡されないといけなくなってしまいます。

しかし今回投稿をする際にはブログ投稿の部分のカラムにはきちんと渡されるのですが、ActionTextの部分に関するテーブルにはユーザー情報行きません。
なので一番最初に出たようなエラーになってしまうわけです。

みなさんも是非気をつけてくだい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0