fatfreecrm

【Rails】エラー:ActiveModel MissingAttributeError (can’t write unknown attribute ‘user_id`)【Fat Free CRM】

こんにちは。たなかです。

今日もRuby on RailsでWebアプリケーションサービスを開発しています。

当サイトではおなじみ(?)の顧客管理Gem「Fat Free CRM」について、作業中に躓いたエラーをご紹介いたします。

症状

機能タブを横並びで追加している際、Javascriptで表示される新規作成フォームを実装していたところ、下記のエラーに遭遇しました。

Completed 500 Internal Server Error in 41ms (ActiveRecord: 4.7ms)

ActiveModel::MissingAttributeError (can't write unknown attribute `user_id`):

lib/fat_free_crm/fields.rb:68:in `assign_attributes'
app/controllers/entities/xxxxs_controller.rb:45:in `new'

user_idなんて知らないよ、と仰っているように見えます。

エラー内容を見てたらひらめきました!

解決方法

テーブルにuser_idを追加

今回追加していたテーブルにはuser_idは不要だと思っていました。

ですが、Fat Free CRMでは『そのレコードを作ったのはどの管理者か』を記録する機能を提供しているので、テーブルにuser_idがないと「誰が作ったかわからない」から怒っていたんですね。

テーブルにuser_idカラムを追加してdb:migrateすると、無事に新規作成フォームが動き出しました。

よかったー!

まとめ

fatfreecrm

 

終わってみればなんてことない問題でしたが、実装している機能とは関係ないカラムだったので、解決にやや時間がかかってしまいました。不覚。

でもこういう小さいハマりをこなしていくうちに、Fat Free CRMについても段々わかってきたような気がしますね。

同じような症状でお悩みの方の参考になれば幸いです。

短いですが、今回はここまで。

関連記事

スポンサードリンク