【发布时间】:2016-05-09 16:45:32
【问题描述】:
如果我单击我的编辑链接,该链接将起作用,并将我带到我要编辑的特定画廊的编辑表单。如果我单击同一控制器的新链接,则会收到以下错误:
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
如果您需要我提供更多信息,请告诉我。提前致谢。
【问题讨论】:
标签: forms ruby-on-rails-4 nomethoderror nested-resources