2017-07-14 13 views
0

オーバーライドされたDeviseリソース(User)内でActiveResourceクラス(Staff)を使用しようとしています。この時点での目的は、登録時に選択する登録ユーザーのスタッフのリストを返すことです。オーバーライドされたDeviseクラスのActiveResource NameError

コントローラ/ユーザー/ registrations_controller.rb

def new 
    @list = Staff.find() 
    super 
end 

モデル/ staff.rb

require 'active_resource' 

class Staff < ActiveResource::Base 
    self.site = "http://localhost/Staff/" 
end 

オーバーライドされた新しい方法を取得すると私の宝石ファイルが宝石 'active_resource'

を含み次のエラーと呼ばれるエラーが表示されます。

ユーザーでNameError :: RegistrationsController#新しい初期化されていない一定の ユーザー:: RegistrationsController ::スタッフ

これを克服することができる方法上の任意のアイデア?

おかげで マーク

答えて

0

コントローラでは、Staffクラスを参照しているが、あなたのモデルでは、あなたはEposnowStaffクラスを定義します。 EposnowStaffからStaffに名前を変更してください。

+0

クラス名を変更しましたが、報告されたエラーが発生します。なぜ私はUser :: RegistrationsController :: Staffとして定数が報告されているのですか?これは問題だろうか? – Mark

+0

このエラー報告は、別の定数のコンテキストで定数が見つからないことをrubyがどのように報告するかの標準です。未定義の定数を呼び出すことで、これを自分で試すことができます: 'module Monkey;ラマ;終わり。問題は、RubyがStaff定数を見つけられないことです。これは 'app/models/staff.rb'で定義され、レールで自動ロードされるべきです。もしあなたがまだサーバを停止させて、 'bin/spring stop'で春を止めて、サーバを再起動し、' Staff'定数が正しくロードされるかどうか確認してください。 – Puhlze

関連する問題