在引擎上安装Devise会带来路由错误

时间:2015-03-23 19:59:16

标签: ruby-on-rails ruby devise

我在使用Rails创建引擎时遇到问题。

我想创建一个使用Devise共享我所有其他应用程序的引擎。

我按照rails网站上的Engines入门指南进行操作: http://edgeguides.rubyonrails.org/engines.html

创建了一个应用程序,需要我的引擎......一切运行得很好。 然后,我遇到了Devise(我之前已经在应用程序中直接安装了Devise,但是没有在引擎中安装)但是当我尝试使用它时,通过访问继承before_action authenticate_user!的任何控制器,我收到以下消息: http://i.imgur.com/dIIxgwU.jpg

我真的不明白(我是从Ruby开始的,我是CakePHP的人),路由已设置,但找不到它(?)。

引擎/配置/初始化/ devise.rb

Devise.setup do |config|
  ...
  config.router_name = :doisbit
  config.parent_controller = 'Doisbit::ApplicationController'
end

引擎/配置/ routes.rb中

Doisbit::Engine.routes.draw do
  ...
  devise_for :users, class_name: "Doisbit::User", module: :devise
  ...
end

发动机/ LIB / doisbit / engine.rb

module Doisbit
  class Engine < ::Rails::Engine
    isolate_namespace Doisbit
  end
end

发动机/ LIB / doisbit.rb

require 'doisbit/engine'
require 'devise'
...

发动机/ doisbit.gemspec

...
Gem::Specification.new do |s|
  ...
  s.add_dependency "devise"
end

引擎/应用/控制器/ application_controller.rb

module Doisbit
  class ApplicationController < ActionController::Base
    before_action :authenticate_user!
  end
end

应用/配置/ routes.rb中

Rails.application.routes.draw do
  ...
  mount Doisbit::Engine, at: "/doisbit"
end

应用/配置/环境/ development.rb

Rails.application.configure do
  ...
  config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
end

应用/ Gemfile中

...
gem 'doisbit', path: "C:/.../doisbit"
...

修改

通过访问/doisbit/users/sign_in注意到我收到了表单。 (杜)

i.imgur.com/anTRK2d.jpg

但是......仍然......默认情况下,当我没有登录时,它会路由到/users/sign_in

我缺少什么?

0 个答案:

没有答案