2011-01-13 5 views
4

Ruby on Railsを使用して、私がプレイするゲームのウェブサイトを作成しています。Ruby on Railsの活用の問題

私はUserモデルとStarbaseモデルを持っています。私はセットアップしようとしている関係で、私は、スクリプト/コンソールを開き、ユーザーにアクセスしようとすると、しかし、それは私にエラーを与えるスター・ベースそう

class User < ActiveRecord::Base 
    has_many :starbases 
end 

class Starbase < ActiveRecord::Base 
    belongs_to :user 
end 

のようなものです:NameError: uninitialized constant User::Starbasis

電線に問題があるように見えて、レールが複数形のスターバーではないようです。

私はintializersフォルダにinflections.rbにこれを追加しようとしている:

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.plural 'starbase', 'starbases' 
end 

が、それはまだ問題が解決していません。誰でもこの作業をどうやって行うのかアドバイスできますか?チアー

EEF

+0

わからないを見つけることができますが、この変更は必要ありません。サーバレストアート? – Warren

答えて

5

はあなたが逆屈曲のための行を追加してみました(すなわち「単数形」):私は私のコンソールであなたの例を試してみましたが、それは個別化した

inflect.singular "starbases", "starbase" 

他の方法ではなく、問題を引き起こした。これがルートのような他の問題を修正するかどうかはわかりませんが、シンプルなものを修正する必要があります(私は思っています)。

+0

ねえ、私はこれを試しましたが、残念ながら私はまだ同じエラーが発生しています。 – RailsSon

+1

ねえ、私はinflect.irregular "starbase"、 "starbases"で作業しています。あなたの質問を正しいものとしてマークしてください。応答への歓声。 – RailsSon

+0

これは私の次の提案でしたが、私が提案したように私のセットアップでは問題を混乱させたくありませんでした。素敵な仕事... – Nuby

0

私は、Active SupportがどのようにしてClass名やモジュール名を特異化したり、複数化しているかを再確認しました。

あなたのレールアプリを稼働させて、新しいタブにrails consoleと入力して、レールコンソールに入れてください。そこにあなたの名前のための正しいスタイルを簡単に確認することができます。

長い道のりActiveSupport::Inflector.pluralize "fish" # => "fish"

短い道"fish".pluralize # => "fish"

あなたはここでより多くの例

https://github.com/rails/rails/blob/master/activesupport/test/inflector_test_cases.rb

関連する問題