rails form_helper在编辑页面中找不到模型的路径

时间:2012-04-27 07:26:18

标签: ruby-on-rails paperclip ruby-on-rails-3.2

我有 Picture 模型,它包含2个字段照片和描述(照片是来自papperclip gem的字段)

我有 PicturesController 包含新的创建编辑更新销毁并显示

我已使用routes.rbresource :pictures中声明了我的路线。

     pictures POST   /pictures(.:format)      pictures#create
 new_pictures GET    /pictures/new(.:format)  pictures#new
edit_pictures GET    /pictures/edit(.:format) pictures#edit
              GET    /pictures(.:format)      pictures#show
              PUT    /pictures(.:format)      pictures#update
              DELETE /pictures(.:format)      pictures#destroy

有我的观看代码

  # pictures/new.html.erb & pictures/edit.html.erb 
  <%= form_for @picture, :html => {:multipart => true} do |f| %>

      <div><%= f.label :photo %><br/>
        <%= f.file_field :photo %></div><br/>

      <div><%= f.label :description %><br/>
        <%= f.text_area :description %></div><br/>

      <%= f.submit :upload %>
  <% end %>

  # 

我在new中使用相同的代码并编辑更改提交按钮标签。

new.html.erb中工作正常(创建并将图片保存到数据库中)。

但错误出现在edit.html.erb

 undefined method `picture_path' for #<#<Class:0x007f830e93ad30>:0x007f830e92d5b8>

我已经检查了@picture。为什么rails无法找到Picture类的更新路径?

我遵循此link的form_for指南。

任何想法?感谢。

1 个答案:

答案 0 :(得分:2)

你的多元化有问题。有了资源:图片,你应该有类似的东西..

pictures     GET    /pictures(.:format)                    pictures#index
             POST   /pictures(.:format)                    pictures#create
new_picture  GET    /pictures/new(.:format)                pictures#new
edit_picture GET    /pictures/:id/edit(.:format)           pictures#edit
picture      GET    /pictures/:id(.:format)                pictures#show
             PUT    /pictures/:id(.:format)                pictures#update
             DELETE /pictures/:id(.:format)                pictures#destroy

注意图片元素上的单数..这将产生动态picture_path方法

更新:在路线文件中将“资源”更改为“资源”,您应该没问题