0
嗨我試圖使用一個窗體作爲我的albums
控制器/模型的新/編輯視圖的一部分。然而,它給我的錯誤,當我嘗試編輯專輯:Rails:指定url的形式不能用作partial?
No route matches [PUT] "https://stackoverflow.com/users/22/albums"
我認爲這可能與做我的窗體的:url
。當我提交它來創建相冊時,我的表單工作正常,但是當我嘗試編輯相冊時出現該錯誤。
我嘗試拿出我的表格中的url: user_albums_path
,但當我嘗試創建新相冊時,它會給我一個錯誤。
No route matches [POST] "/albums"
有沒有什麼辦法讓這個表單同時適用於行動?我覺得這兩個操作中url:無法正確共存。
_form.html.erb
<%= form_for (@album), url: user_albums_path, :html => { :id => "uploadform", :multipart => true } do |f| %>
<div class="formholder">
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :description %>
<%= f.text_area :description %>
<br>
<%=f.submit %>
</div>
<% end %>
專輯控制器
class AlbumsController < ApplicationController
def index
@user = User.find(params[:user_id])
@albums = @user.albums.all
respond_to do |format|
format.html
format.json { render json: @albums }
end
end
def show
@user = User.find(params[:user_id])
@album = @user.albums.find(params[:id])
end
def update
@user = User.find(params[:user_id])
@album = @user.albums.find(params[:id])
respond_to do |format|
if @album.update_attributes(params[:album])
format.html { redirect_to user_album_path(@user, @album), notice: 'Album successfully updated' }
else
format.html { render 'edit' }
end
end
end
def edit
@user = User.find(params[:user_id])
@album = @user.albums.find(params[:id])
end
def create
@user = User.find(params[:user_id])
@album = @user.albums.build(params[:album])
respond_to do |format|
if @user.save
format.html { redirect_to user_album_path(@user, @album), notice: 'Album was successfully created.' }
format.json { render json: @album, status: :created, location: @album}
else
format.html { render action: "new" }
format.json { render json: @album.errors, status: :unprocessable_entity }
end
end
end
def new
@user = User.find(params[:user_id])
@album = Album.new
end
def destroy
end
末
請幫助!
更新:
固定它!我自己!形式只是需要是<%= form_for([@user, @album])...
建立一個空相冊,我最終自己想出來了!儘管這是正確的答案! – Edmund