2012-03-24 15 views
7

をリソースへの私は奇妙な問題があります。未定義のローカル変数やメソッド `new_media_path」 - リソース

を、私はこのエラーを得たサーバーを起動した後:

undefined local variable or method `new_media_path' 

これを修復するには私はroutes.rbをして行かなければならないと

resource :media 

resources :media 

を変更

と再び

resources :media 

にそれは迷惑なんです。これを解決するための任意のアイデア?

答えて

5

mediaあなたはrake routesを実行する場合は、すべての利用可能なルートが表示されますmedium

の複数形であるため、あなたはnew_medium_pathを試してみてください。

+3

..またはresources:mediasへのルートを変更します。適切な英語ではありませんが、もしあなたが好きなら、それはあなたに「メディア」を与えるでしょう。 – Shaun

3

Inflectorクラスを使用して、適切な複数化についてレールに通知することもできます。それは大部分の作業をうまく処理しますが、 'media'のような非標準の複数化は必ずしもあらかじめ定義されているわけではありません。 設定/初期化子/ inflections.rbを編集し、あなた自身を追加し、最後にこれを追加するには:

ActiveSupport::Inflector.inflections do |inflect| 
inflect.irregular 'medium', 'media' 
end 

これはRailsは全ての単数/複数のものを処理させる必要があります - これは、それはDBに考えている影響します注意してくださいそれはモデルがミディアムクラスことを期待していますので、テーブル名は、同様になり、テーブル名が同じものを複数と単数をオンにするメディア

(すなわち、常に「メディア」になります)、使用:

ActiveSupport::Inflector.inflections do |inflect| 
inflect.uncountable 'media' 
end 
関連する問題