разработать собственные маршруты - PullRequest
1 голос
/ 21 июля 2011

Когда пользователь переходит на

/ счет / редактировать

нажмите кнопку отправки, она перенаправляет на

/ * 1010 Регистрация *

путь? Любая помощь будет оценена.

маршруты

devise_for :users, :skip => [:registrations, :sessions] do
  get 'signup' => 'devise/registrations#new', :as => :new_user_registration
  post 'signup' => 'devise/registrations#create', :as => :user_registration
  get 'users/cancel' => 'devise/registrations#cancel', :as => :cancel_user_registration
  get 'account/edit' => 'devise/registrations#edit', :as => :edit_user_registration
  put 'account' => 'devise/registrations#update'
  delete 'users' => 'devise/registrations#destroy'

  get 'signin' => 'devise/sessions#new', :as => :new_user_session
  post 'signin' => 'devise/sessions#create', :as => :user_session
  get 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
end

регистрация / edit.html.erb

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<% if resource.errors.any? %>
    <div id="error_explanation">
      <ul>
      <% resource.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
<% end %>
<div class="field">
    <%= f.label :email %><br/>
  <%= f.email_field :email %>
</div>
<div class="field">
  <%= f.label :password %><br/>
  <%= f.password_field :password %>
</div>
<div class="field">
  <%= f.label :password_confirmation %><br/>
  <%= f.password_field :password_confirmation %>
</div>
<div class="field">
  <%= f.label :current_password %><br/>
  <%= f.password_field :current_password %>
</div>
<div class="actions">
  <%= f.submit %>
</div>
<% end %>

1 Ответ

1 голос
/ 14 февраля 2012

Насколько я знаю, для этого есть два возможных решения.

Решение № 1:

Изменить эту строку:

post 'signup' => 'devise/registrations#create', :as => :user_registration

На это:

post 'account' => 'devise/registrations#create', :as => :user_registration

Решение № 2:

Измените эту строку:

put 'account' => 'devise/registrations#update'

На это:

put 'account' => 'devise/registrations#update', :as => :update_user_registration

А затем измените опцию form_for url в представлении:

form_for(resource, :as => resource_name, :url => update_user_registration_path, :html => { :method => :put })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...