2012-03-12 15 views
1

私は'メディア 'モデルを持っていて、そのテーブルの変更を行うコントローラは' MultimediaController 'と呼ばれます。未定義のメソッド `medium_url '

新しいメディアを作成してリダイレクトしようとすると、私は次のエラーを取得する:undefined method 'medium_url' for #<MultimediaController:0x007f86f49ca400>

私は任意のテーブル、モデル、コントローラまたは「媒体」と呼ばれる何かを持っていけません。私はレールが自動的に私のテーブル 'メディア'に基づいてこれをやっていると仮定しています。これを上書きする方法はありますか?

編集:私のリダイレクトは、次のようになります。respond_with(@media, {:controller => 'multimedia', :action => 'index', :id => session[:user_id], :collection => @media.collection_id})

+0

http://stackoverflow.com/questions/1185035/how-do-i-override-rails-naming-conventions – rwilliams

答えて

1

あなたがinflections.rbで行うか、カスタマイズするためにいくつかの名前変更を持っているように聞こえるように、「メディア」「中」のための複数のです。

+0

私はこれを知っていませんでした、ありがとう! – fridgerator

+0

お気軽にお問い合わせください。 inflection.rbのブロックにinflect.regregular 'media'、 'medias'を追加するのと同じくらい簡単かもしれません。しかし、もちろん文法的に正しいわけではありません。がんばろう。 – miked

0

Medium_urlはレールが、単一の「中」のレコード(またはあなたが...メディアなどを扱っているものは何でもデータベース)を探している意味します。 medium_urlを使用するときは、MediumオブジェクトにリダイレクトするためにIDを渡す必要があります。

すべてのメディア(インデックスアクション)のリストにリダイレクトする場合は、mediums_urlを使用する必要があります。

Railsには安らかなルーティングに関する素晴らしいガイドがあります。

http://guides.rubyonrails.org/routing.html

def create 

    # Code to create the record goes here blah blah. 

    # Redirect to a list of all mediums 
    redirect_to mediums_url 

    # Or redirect to the medium object we just created 
    # redirect_to medium_url(@object) 
end 
+0

「medium_url」はどこから来たのですか?私は自分のアプリケーションのどこにでも「中」を使用していません。それはメディアから来ていますか?私のコンソールは「media」から置き換えました.pluralizeは「media」で、「medias」.singularizeは「media」です。 – fridgerator

+0

routes.rbにresources:mediumsというルートがありますか? – Jamsi

関連する問題