0
我需要在我的設計註冊表單上發送用戶選擇的實際語言的參數,並且我將其作爲params [:lang]保留在路徑中。Ruby on Rails在設計註冊和登錄時發送參數
我有一個自定義控制器,因爲我正在驗證reCaptcha(該部分工作)。
所以我在我的路線:
devise_for :users, controllers: { registrations: 'registrations' }
devise_for :users do
root :to => "devise/registrations#new"
get "/" => "devise/registrations#new"
post '/' => 'registrations#new', :as => :new_user_registration
match '/', :to => 'devise/registrations#new'
get "/logout", :to => "devise/sessions#destroy", :as => "logout"
end
#Sign
match '/:lang/:sec/sign' => 'frontend#sign', :as => :sign
在我的註冊形式:
<%= form_for(resource, :as => resource_name, :url =>
registration_path(resource_name, :lang => params[:lang], :sec => params[:sec]))
do |f| %>
,我有兩個控制器,一個用於用戶,另一個用於管理員,在成功登錄後,制定雲到用戶控制器,呼叫者Restringido,並想知道用戶是否被驗證爲管理員或只有普通用戶。
在我restringido控制器:
class RestringidoController < ApplicationController
before_filter :verify_is_user
def verify_is_user
if current_user.try(:admin?)
#redireccionar a backend
redirect_to :controller => "backend", :action => "index"
elsif current_user
#mantenerte en este controlador
else
redirect_to :controller => "frontend", :action => "sign"
end
而且我的管理員後臺控制器:
before_filter :verify_is_admin
def verify_is_admin
if current_user.admin?
else
redirect_to root_path
end
和錯誤是:
No route matches {:controller=>"frontend", :action=>"sign"}
您可以更具體地瞭解您正在使用哪個版本的Rails和Devise?您是否已根據Devise Examples&Readme修改您的routes.rb? – z3cko