之前我的设计模型正在运行,但现在所有的路线都失败了。我有两个模型用户和管理员。每个都有正常的附加属性:firstname,:lastname等,每个属性都有相同的控制器和Devise RegistrationsController的扩展。这一切都始于我开始添加bootstrap时。 例如,当我尝试sign_out时,我收到此错误:
没有路线匹配[GET]“/ users / sign_out” Rails.root:/ Users / elizabeth / Desktop / ecoCalculator
我不确定是什么导致它认为退出是[GET]
当我尝试输入/ admins / sign_up时,我得到:
Devise中的ActionController :: UrlGenerationError :: Sessions #new 显示/Users/elizabethzweizig/Desktop/ecoCalculator/app/views/layouts/application.html.erb,其中第61行引发: 没有路线匹配{:action =>“index”,:controller =>“devise / posts”}
这是指Bootstrap导航栏的一部分,但是帖子没有链接到设计。帖子不属于用户或管理员。
以下是我的扩展RegistrationsController
的示例class AdminRegistrationsController < Devise::RegistrationsController
private
def sign_up_params
params.require(:user).permit(:first_name, :last_name, :username, :hometown, :email, :password, :password_confirmation)
end
def account_update_params
params.require(:user).permit(:first_name, :last_name, :username, :hometown, :email, :password, :password_confirmation, :current_password)
end
end
这是我的routes.rb文件
Rails.application.routes.draw do
devise_for :users, :controllers => { registrations: 'registrations' } do
resources :waterusage
end
devise_for :admins, :controllers => { admin_registrations: 'admin registrations' }
get 'welcome/index'
get 'waterusage/result' => "waterusages#results"
resources :posts do
resources :comms
end
resources :waterusages
resources :goals
get "myprofile" => "yours#profile", :as => :myprofile
root 'welcome#index'
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
end
答案 0 :(得分:0)
在路线
devise_for :admins, :controllers => { admin_registrations: 'admin registrations' }
它会admin/registrations
而非admin registrations
,更改此内容并查看发生了什么
查看格式
devise_for :users, :controllers => { registrations: 'users/registrations' } do
resources :waterusage
end
devise_for :admins, :controllers => { registrations: 'admins/registrations' }
并检查app/assets/javascripts/application.js
前两行
//= require jquery
//= require jquery_ujs
如果存在require rails-ujs
删除此
答案 1 :(得分:0)
我解决了这个问题,我最后对上次提交进行了硬重置,以便我可以更仔细地跟踪我的更改。它实际上与我的Bootstrap有关。当我编辑application.html.erb文件时,我已经移动了。
<%= csrf_meta_tags %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
一旦我将其添加回项目中。该设计再次奏效。