Если я нажму ссылку на редактирование, ссылка будет работать и приведет меня к форме редактирования для конкретной галереи, которую я хотел бы отредактировать. Если для одного контроллера я получаю следующее сообщение об ошибке я нажимаю на ссылку на новый:Почему моя Редактирующая форма будет доступна для просмотра, но не моя новая форма того же контроллера?
NoMethodError at /users/2/galleries/new
undefined method `galleries_path' for #<#<Class:0x007f4714fbac68>:0x000000060f32e0>
Did you mean? gallery_path
Я сделал обширный поиск для решения этой проблемы, но я не уверен, что я делаю неправильно. Это работало нормально, пока я не обновил маршруты, чтобы галереи имели вложенный ресурс пользователю. Я был в процессе обновления/исправления моих ссылок и форм, когда я не мог понять, как преодолеть эту проблему.
Ниже приведены мои маршруты, галереи/_form, галереи/правки, галереи/_new, части контроллера галереи.
routes.rb
resources :users, shallow: true do
resources :galleries
resources :images
resources :albums
end
galleries.html.erb
<h1>New Gallery</h1>
<%= render 'form' %>
<%= link_to 'Dashboard', user_path(current_user) %>
galleries/edit.html.erb
<h1>Update Gallery</h1>
<%= render 'form' %>
<%= link_to 'Dashboard', user_path(current_user) %>
galleries_controller.rb
def new
@gallery = current_user.galleries.new
end
def create
@gallery = current_user.galleries.build(gallery_params)
respond_to do |format|
if @gallery.save
format.html { redirect_to @gallery, notice: 'Gallery was successfully created.' }
format.json { render :show, status: :created, location: @gallery }
else
format.html { render :new }
format.json { render json: @gallery.errors, status: :unprocessable_entity }
end
end
end
def show
end
def update
if @gallery.update_attributes(gallery_params)
flash[:success] = "Gallery Updated"
redirect_to @gallery
else
render 'edit'
end
end
private
def set_gallery
@gallery = Gallery.find(params[:id])
end
def gallery_params
params.require(:gallery).permit(:title, images_files: [])
end
Если вам нужно больше от меня, дайте мне знать. Заранее спасибо.