はじめに
@rinrin_abc1818 と申します。
今回は自分用に記録として残したいと思い投稿させていただきました。
筆者はプログラミング経験半年です。
至らない点があるかと思いますので、その際はご指摘いただけると幸いです。
概要
現在Ruby on Railsを用いて投稿型のアプリケーション作成中です。
Deviseを使用してのユーザー管理機能実装時にActiveHashを加えて実装しようと考えていました。
該当のソースコード
models/occupation.rb
class Occupation < ActiveHash::Base
self.data = [
{ id: 1, name: '---' },
{ id: 2, name: '理学療法士' },
{ id: 3, name: '作業療法士' },
{ id: 4, name: '言語聴覚士' },
{ id: 4, name: 'その他' },
]
include ActiveHash::Associations
belongs_to :user
end
対応
NoMethodErrorということでスペルミスかなと思いましたが、、、
「そもそもCurrent_scopeなんてメソッドは使っていない!」
ということで、とりあえずGoogle検索を実施しました。
同様のエラーがちらほら確認はできましたが、自分と同じエラー内容の人はいませんでした。。。
ですが、よくよく考えてみると、皆さん解決方法はActiveHashのファイル関連の修正なんですよね。
結果
{ id: 4, name: '言語聴覚士' },
{ id: 4, name: 'その他' },
このid 4が二つになっていたことが原因でした。
確認不足ですね。
寝て起きて、再確認すると見つけることができました。
まとめ
最終的に今回何が言いたいかということなのですが、
Current_scopeを含むエラーが出た場合はActiveHash関連の記述にエラーがある場合が多いということでした。また落ち着いてよく見るとその後ろにクラス名まで書いてあるので、そこを中心に探すのが良いのかなと思いました。
とりあえずスペルミスは気をつけます。。。