簡體   English   中英

通過Rails改變路線

[英]changing routes with devise in rails

我正在使用Rails 4.1.1

我希望用戶遵循的旅程是使用基本的設計表格進行注冊,以便使用電子郵件,密碼和密碼確認。 當用戶提交時,我希望他們直接進入編輯個人資料頁面。 新用戶注冊頁面的底部在下面。 我已經嘗試了幾件事,但是一切都讓我回頭出錯。 任何幫助將非常感激! 我還包括了我的設計鏈接,因為這是我應該看的地方?

   <div class="form-group">
    <%= f.label :password_confirmation %>
    <%= f.password_field :password_confirmation, autocomplete: "off", class: "form-control" %>
  </div>

  <div class="form-group">
    <%= f.submit "Sign up", class: "btn btn-primary" %>

  </div>
<% end %>

<%= render "devise/shared/links" %>





    <%- if controller_name != 'sessions' %>
  <%= link_to "Log in", new_session_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
  <%= link_to "Sign up", new_registration_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
  <%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
  <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
  <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
<% end -%>

<%- if devise_mapping.omniauthable? %>
  <%- resource_class.omniauth_providers.each do |provider| %>
    <%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
  <% end -%>
<% end -%>

路線如下

      new_admin_user_session GET        /admin/login(.:format)                     active_admin/devise/sessions#new
            admin_user_session POST       /admin/login(.:format)                     active_admin/devise/sessions#create
    destroy_admin_user_session DELETE|GET /admin/logout(.:format)                    active_admin/devise/sessions#destroy
           admin_user_password POST       /admin/password(.:format)                  active_admin/devise/passwords#create
       new_admin_user_password GET        /admin/password/new(.:format)              active_admin/devise/passwords#new
      edit_admin_user_password GET        /admin/password/edit(.:format)             active_admin/devise/passwords#edit
batch_action_admin_admin_users POST       /admin/admin_users/batch_action(.:format)  admin/admin_users#batch_action
             admin_admin_users GET        /admin/admin_users(.:format)               admin/admin_users#index
                               POST       /admin/admin_users(.:format)               admin/admin_users#create
          new_admin_admin_user GET        /admin/admin_users/new(.:format)           admin/admin_users#new
         edit_admin_admin_user GET        /admin/admin_users/:id/edit(.:format)      admin/admin_users#edit
              admin_admin_user GET        /admin/admin_users/:id(.:format)           admin/admin_users#show
                               PATCH      /admin/admin_users/:id(.:format)           admin/admin_users#update
                               PUT        /admin/admin_users/:id(.:format)           admin/admin_users#update
                               DELETE     /admin/admin_users/:id(.:format)           admin/admin_users#destroy
              new_user_session GET        /users/sign_in(.:format)                   devise/sessions#new
                  user_session POST       /users/sign_in(.:format)                   devise/sessions#create
          destroy_user_session DELETE     /users/sign_out(.:format)                  devise/sessions#destroy
                 user_password POST       /users/password(.:format)                  devise/passwords#create
             new_user_password GET        /users/password/new(.:format)              devise/passwords#new
            edit_user_password GET        /users/password/edit(.:format)             devise/passwords#edit
                               PATCH      /users/password(.:format)                  devise/passwords#update
                               PUT        /users/password(.:format)                  devise/passwords#update
      cancel_user_registration GET        /users/cancel(.:format)                    devise/registrations#cancel
             user_registration POST       /users(.:format)                           devise/registrations#create
         new_user_registration GET        /users/sign_up(.:format)                   devise/registrations#new
        edit_user_registration GET        /users/edit(.:format)                      devise/registrations#edit
                               PATCH      /users(.:format)                           devise/registrations#update
                               PUT        /users(.:format)                           devise/registrations#update
                               DELETE     /users(.:format)                           devise/registrations#destroy

這是我的應用程序控制器

    class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception

   before_filter :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:name, :email, :password) }
    devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:name, :line1, :line2, :town, :county, :postcode)}
  end

  private 
  def after_sign_up_path_for(resource)
    edit_user_registration_path
  end
end

為了能夠更改after_up行為,您必須在application_controller.rb重寫after_sign_up_path_forafter_sign_up_path_for方法:

class ApplicationController < ActionController::Base

  private
  def after_sign_up_path_for(resource)
    edit_user_registration_path(current_user) #basically whichever path you think meets your needs
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM