Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 重定向活动管理员登录以设计登录_Ruby On Rails_Ruby On Rails 3_Redirect_Devise_Activeadmin - Fatal编程技术网

Ruby on rails 重定向活动管理员登录以设计登录

Ruby on rails 重定向活动管理员登录以设计登录,ruby-on-rails,ruby-on-rails-3,redirect,devise,activeadmin,Ruby On Rails,Ruby On Rails 3,Redirect,Devise,Activeadmin,在我的应用程序中,我成功地安装了Desive,它工作得非常好。然后我第一次为管理面板安装了,并设置了路径。现在,当我尝试在Active Adminlocalhost:3000/Admin/login中登录时,它会将我重定向到designe的登录页面。我知道可能有愚蠢的错误,但不知道如何解决这个问题 app/config/initializers/active_admin.rb ActiveAdmin.setup do |config| #I have removed comments con

在我的应用程序中,我成功地安装了Desive,它工作得非常好。然后我第一次为管理面板安装了,并设置了路径。现在,当我尝试在Active Admin
localhost:3000/Admin/login
中登录时,它会将我重定向到designe的登录页面。我知道可能有愚蠢的错误,但不知道如何解决这个问题

app/config/initializers/active_admin.rb

ActiveAdmin.setup do |config|  #I have removed comments
 config.site_title = "Shopaholic"
 config.authentication_method = :authenticate_admin_user!
 config.current_user_method = :current_admin_user
 config.logout_link_path = :destroy_admin_user_session_path
 config.batch_actions = true
end
Devise.setup do |config|
  config.secret_key = '28c01a5ccf820bb594d2b6421becfa6487df79dad52a57d49cf61f802ea00c7364215f43cdf87463503e658da69e182f8c35d668577f975fea2bdee736a5d20a'
  config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
  require 'devise/orm/active_record'
  config.authentication_keys = [ :email ]
  config.case_insensitive_keys = [ :email ]
  config.strip_whitespace_keys = [ :email ]
  config.skip_session_storage = [:http_auth]
  config.stretches = Rails.env.test? ? 1 : 10
  config.remember_for = 2.weeks
  config.password_length = 8..128
  config.reset_password_within = 6.hours
  config.default_scope = :users
  config.sign_out_via = :delete
end
Shopaholic::Application.routes.draw do
  root :to => "products#products_list"
  #root to: "admin/dashboard#index"
  devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)

  devise_for :users
  ActiveAdmin.routes(self)
end
app/config/initializers/designe.rb

ActiveAdmin.setup do |config|  #I have removed comments
 config.site_title = "Shopaholic"
 config.authentication_method = :authenticate_admin_user!
 config.current_user_method = :current_admin_user
 config.logout_link_path = :destroy_admin_user_session_path
 config.batch_actions = true
end
Devise.setup do |config|
  config.secret_key = '28c01a5ccf820bb594d2b6421becfa6487df79dad52a57d49cf61f802ea00c7364215f43cdf87463503e658da69e182f8c35d668577f975fea2bdee736a5d20a'
  config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
  require 'devise/orm/active_record'
  config.authentication_keys = [ :email ]
  config.case_insensitive_keys = [ :email ]
  config.strip_whitespace_keys = [ :email ]
  config.skip_session_storage = [:http_auth]
  config.stretches = Rails.env.test? ? 1 : 10
  config.remember_for = 2.weeks
  config.password_length = 8..128
  config.reset_password_within = 6.hours
  config.default_scope = :users
  config.sign_out_via = :delete
end
Shopaholic::Application.routes.draw do
  root :to => "products#products_list"
  #root to: "admin/dashboard#index"
  devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)

  devise_for :users
  ActiveAdmin.routes(self)
end
routes.rb

ActiveAdmin.setup do |config|  #I have removed comments
 config.site_title = "Shopaholic"
 config.authentication_method = :authenticate_admin_user!
 config.current_user_method = :current_admin_user
 config.logout_link_path = :destroy_admin_user_session_path
 config.batch_actions = true
end
Devise.setup do |config|
  config.secret_key = '28c01a5ccf820bb594d2b6421becfa6487df79dad52a57d49cf61f802ea00c7364215f43cdf87463503e658da69e182f8c35d668577f975fea2bdee736a5d20a'
  config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com'
  require 'devise/orm/active_record'
  config.authentication_keys = [ :email ]
  config.case_insensitive_keys = [ :email ]
  config.strip_whitespace_keys = [ :email ]
  config.skip_session_storage = [:http_auth]
  config.stretches = Rails.env.test? ? 1 : 10
  config.remember_for = 2.weeks
  config.password_length = 8..128
  config.reset_password_within = 6.hours
  config.default_scope = :users
  config.sign_out_via = :delete
end
Shopaholic::Application.routes.draw do
  root :to => "products#products_list"
  #root to: "admin/dashboard#index"
  devise_for :admin_users, ActiveAdmin::Devise.config
  ActiveAdmin.routes(self)

  devise_for :users
  ActiveAdmin.routes(self)
end

如果您需要任何进一步的信息,请告诉我,我会更新。请帮我解决这个问题。。提前感谢

文件应该在config/initializers中,而不是在app/initializers中(请参阅:config/initializers/active_admin.rb)

顺便说一句,我建议在您的Desive模型中添加一个admin列,并使用它来验证可以在您的系统中访问active_admin的管理员用户。

config/initializers/active_admin.rb
将以下内容添加到设置块的底部

ActiveAdmin::BaseController.class_eval do
  skip_before_filter :authenticate_user!
end
更新:对于Rails 5.0及更高版本,您将希望添加如下内容:

config.skip_before_action :authenticate_user!

我认为,如果您在application_controller.rb中有此块,那么它会将您重定向到designe的登录页面:

def after_sign_in_path_for(resource)
    users_path
end
要解决此重定向问题,请使用此块而不是上面的块:

def after_sign_in_path_for(resource)
    if resource.is_a?(AdminUser)
        admin_dashboard_path
    else
        users_path
    end
end
如果由于应用程序_controller.rb上的“在_操作之前:验证_用户!”而仍然存在问题,则根据@YodaTravis使用config/initializers/active _admin.rb底部的此块

ActiveAdmin::BaseController.class_eval do
    skip_before_filter :authenticate_user!
end

它会对你有用的

这是一个错误,因为活动管理员也使用Desive gem进行用户身份验证,我认为您已经安装了Desive(第一个)和活动管理员(第二个)@Bharatsoni:是的,我先安装了Desive,然后安装了Active Admin,但现在怎么解决呢?@Bharatsoni:在我的数据库中,有两个表
Admin\u users
用于Active Admin,还有
users
用于Desive。我想如果你刚刚创建了一个新的应用程序,那么就创建一个新的应用程序,不安装Desive,直接进入Activeadmin.@Bharatsoni:不,我已经完成了我的电子商务应用程序。是的,文件已经在config/initializers中。这是我的错误,把路径。我已经更新了。谢谢你的回答。但问题是重定向,它解决了问题吗?不知道为什么在路由中有两次“ActiveAdmin.routes(self)”。请随时用Skype联系我(Andrewcpkelle1),因为这应该是一个非常简单的解决方案。