2017-04-12 60 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 
相关问题