У меня есть две следующие модели:
class PhotoAlbum < ActiveRecord::Base
belongs_to :project
has_many :photos, :dependent => :destroy
class Photo < ActiveRecord::Base
belongs_to :photo_album
Когда пользователь просматривает фотографию, URL выглядит следующим образом: "/ photo_albums / 40 / photos? Page = 6"
На этой странице просмотра фотографий (внутри альбома) я хочу дать пользователю возможность обновить изображение, поэтому я использую следующее:
<% form_for [:photo, @photos.first], :url => photo_album_photos_path, :html => { :multipart => true } do |f| %>
<form method="post" id="edit_photo_124" enctype="multipart/form-data" class="edit_photo" action="/photo_albums/40/photos" accept-charset="UTF-8">
Что я считаю правильным? Проблема в том, что когда я нажимаю обновить, я получаю следующую ошибку:
No route matches "/photo_albums/40/photos"
Вот мои маршруты, которые выглядят хорошо, нет?
photo_album_photo PUT /photo_albums/:photo_album_id/photos/:id(.:format) {:action=>"update", :controller=>"photos"}
photo PUT /photos/:id(.:format) {:action=>"update", :controller=>"photos"}
Мысли? спасибо
ОБНОВЛЕНИЕ с файлом конфигурации маршрута:
resources :photos do
resources :comments, :only => [:create, :update,:destroy], :constraint => {:context_type => "photos"}
collection do
post 'upload'
get 'search'
end
end
resources :photo_albums do
resources :comments, :only => [:create, :update,:destroy], :constraint => {:context_type => "photo_albums"}
resources :photos
collection do
get 'search'
end
end