Я пытаюсь создать настраиваемое действие для страницы обновления моего профиля. Это не может быть обычное действие # edit или users # update, потому что только Admins могут использовать эту страницу.Rails 3. Как создать пользовательское действие PUT?
Так это то, что я имею в routes.rb (сторона вопрос: как я могу сделать ссылку стать mydomain.com/users/update_profile вместо mydomain.com/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
Когда я отправить форму, я получаю это: маршрутизации Ошибка Нет маршрута матчей [PUT] «/ update_profile/1»
Я понимаю ошибку, потому что в соответствии с выходом rake routes
действие update_profile является GET.
Поэтому мне нужно изменить его на PUT, но я не знаю, как это сделать. Как настроить настраиваемое действие PUT в routes.rb?
Не так ли просто, как изменить 'get 'update_profile /: id'' на' put' update_profile /: id''? –