私のプロフィールの更新ページのカスタムアクションを作成しようとしています。 Adminsだけがそのページを使用できるので、通常のユーザー#editまたはユーザー#updateアクションはできません。Rails 3.カスタムPUTアクションの作成方法は?
だからこれは私がroutes.rbを中に持っているもの(側の質問です:どのように私は、リンクではなくmydomain.com/update_profileのmydomain.com/users/update_profileになることができます
get 'update_profile/:id' => "users#update_profile", :as => 'update_profile'
_form.html?私は、フォームを送信すると.erb
<%= form_for @user, :url => update_profile_path(@user) do |f| %>
<%= render :partial => "form", :locals => {:f => f} %>
<% end %>
users_controller.rb
def update_profile
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to @user, notice: 'User was successfully updated.' }
else
format.html { render action: "edit" }
end
end
end
私はこれを取得:ルーティングエラーNoルートマッチ[PUT] "/ update_profile/1"
rake routes
の出力に応じてupdate_profileアクションがGETであるので、私はエラーを理解しています。
私はPUTに変更する必要がありますが、私はどのようにわかりません。 routes.rbでカスタムPUTアクションを設定するにはどうすればよいですか?
update_profile /:id''を 'put 'に変更するのと同じくらい単純ではありませんか? –