2017-04-12 87 views
1

我知道這個問題已經問之前,他們說「模型是獨立的控制器。」所以,遵循我爲其他模型所做的相同代碼,我只是將我的工作代碼重新命名爲適合我的新模型。但我得到一個錯誤undefined method 'userimages_path'在這裏我使用的代碼。Rails的:從不同的控制器訪問模型

該模型是userimage和控制器是uploads

控制器/ uploads_controller.rb

def new 
    @userimage = Userimage.new 
    end      


型號/ userimage.rb是一個空文件

查看/上傳/ new.html.erb(這條線被投擲的誤差。 )

<%= form_for @userimage do |f|%> 

在我的routes.rb

resources :uploads 

我有rake db:migrate幾次,以確保我沒有遷移數據庫想這可能是爲什麼它不能找到Userimage

我我做錯/缺少在這裏?

+1

你能證明你的架構文件/遷移覆蓋用戶形象? –

+0

你可以確認你的模型是'Userimage'與'UserImage'相比嗎? – jdgray

+0

'create_table「userimages」,force::cascade do | t | t.text 「說明」 t.string 「稱號」 t.datetime 「created_at」,空:假 t.datetime 「的updated_at」,空:假 end' – deskmonkey

回答

1

這是Rails的魔力,當你不指定form_for秒選項(url),Rails的嘗試<%= form_for @userimage do |f|%>將通過Rails的設置,你的情況來<%= form_for @userimage, url: userimages_path do |f|%>,在你的路線,有沒有這樣的_path幫手。 要解決此問題,運行bundle rake routes並設置正確url選項。

Check the documentation

+0

對我來說,Rails是外星人的技術。我對它自動爲我做了多少事情感到印象深刻,它只是用更少的代碼工作。哦,哦!我的燈泡剛剛亮起來!所以鐵軌是根據模型/粗糙而不是控制器/粗糙的路線?有趣的。有用!!我神祕的爲什麼它正在尋找userimages_path。認爲這是足夠聰明的路由到form_for new_uploads,所以我沒有想到看那裏!標記爲答案!謝謝! – deskmonkey

0

試試下面的代碼:

視圖

<%= form_for @userimage, url: "/uploads" do |f|%> 

上傳控制器

def create 
    ... 
end 
相關問題