2011-11-08 13 views
0

私はUserという名前のコントローラを持っています。 2つのアクションでは、Preferenceというモデルにアクセスしたいと思います。いずれかのアクションをタップしようとすると、「初期化されていない定数UserController :: Preferences」エラーが表示されます。コントローラが1つのモデルにアクセスできますが、別のモデルにはアクセスできないのはなぜですか?

Prospectなどの他のモデルにエラーなくアクセスできます。プロスペクトとプリファレンスの両方に関連するものは、ユーザーとbelongs_to関係にあります。

私は:: Preferencesとしてモデルにアクセスしようとしましたが、これと非常によく似たエラー、「初期化されていない定数の設定」が表示されます。私はまた、手動でモデルを必要とする、無駄にしようとしました。

他に誰もこの問題を抱えて解決策を考えていますか?

+1

あなたが言ったように、モデルは 'Preference'という名前です。 –

+0

User、Prospect、Preferenceというモデルのコードを表示してください。 –

答えて

2

あなたは「プリファレンス」と呼んでいるようです。しかし、それはあなたのモデルの名前ではありません。

class UsersController < ApplicationController 

    def show #or whatever 
    @user = User.find(67) 
    @preferences = user.preferences 
    # OR 
    @preferences = Preference.where(:user_id => @user.id).first 
    end 
end 

私たちがPreferenceを呼ぶとき、それは単数であることに注意してください。

+0

ありがとう、それは問題でした。 2人のプログラマーが10分間スクリーンの周りに座ってこれを拾うことができないのは面白いことです。時には外から見ているだけです。 – Fingerfactor

+0

@Fingerfactorあなたは大歓迎です - そして私は同意します.SOの最善のことの1つは、別の開発者がもたらす新鮮な視点です。 –

関連する問題