我有 Picture
模型,它包含2个字段照片和描述(照片是来自papperclip gem的字段)
我有 PicturesController
包含新的创建编辑更新销毁并显示
我已使用routes.rb
在resource :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指南。
任何想法?感谢。
答案 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方法
更新:在路线文件中将“资源”更改为“资源”,您应该没问题