2012-03-12 125 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 2012-03-12 00:33:41

回答

1

「媒體」是複數爲「中等」,所以,它聽起來就像你已經有了一些重命名做或自定義的是inflections.rb。

+0

我不知道這一點,謝謝! – fridgerator 2012-03-12 03:27:46

+0

樂意提供幫助。這可能是因爲在是inflections.rb塊添加inflect.irregular「媒體」,「媒體」那樣簡單。但是,當然,這在語法上仍然不正確。祝你好運。 – miked 2012-03-12 03:32:01

0

Medium_url意味着軌道正在尋找一個「中」記錄(或任何數據庫,你正在處理..媒體等)。當使用medium_url時,您必須傳入一個id才能重定向到Medium對象。

如果你想重定向到所有介質的列表(你的索引動作),你應該使用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是「媒體」,而'medias'。'singularize是「媒體」。 – fridgerator 2012-03-12 01:30:51

+0

你在route.rb中有一個名爲resources:mediums的路由嗎? – Jamsi 2012-03-12 09:54:02