簡體   English   中英

設計Rails 3.2.6中的路由錯誤

[英]Devise Routing Error in rails 3.2.6

我已經瀏覽了所有Devise路由錯誤討論,但是找不到解決我的問題的解決方案。 我的環境如下:-Ruby 1.9.3-Rails 3.2.6-Devise 2.2.0

我在這里遵循了所有步驟: https//github.com/plataformatec/devise

這些文件是:

routes.rb中:

Dealzhunt::Application.routes.draw do

  devise_for :members 

  get "browse/all"

  get "home/index"

  root :to => 'browse#all'

# some other code

member.rb:

class Member < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me
  # attr_accessible :title, :body
end

耙路:

          new_member_session GET    /members/sign_in(.:format)       devise/sessions#new
              member_session POST   /members/sign_in(.:format)       devise/sessions#create
      destroy_member_session DELETE /members/sign_out(.:format)      devise/sessions#destroy
             member_password POST   /members/password(.:format)      devise/passwords#create
         new_member_password GET    /members/password/new(.:format)  devise/passwords#new
        edit_member_password GET    /members/password/edit(.:format) devise/passwords#edit
                             PUT    /members/password(.:format)      devise/passwords#update
  cancel_member_registration GET    /members/cancel(.:format)        devise/registrations#cancel
         member_registration POST   /members(.:format)               devise/registrations#create
     new_member_registration GET    /members/sign_up(.:format)       devise/registrations#new
    edit_member_registration GET    /members/edit(.:format)          devise/registrations#edit
                             PUT    /members(.:format)               devise/registrations#update
                             DELETE /members(.:format)               devise/registrations#destroy
                  browse_all GET    /browse/all(.:format)            browse#all
                        root        /                                browse#all

對於以下URL:

http://localhost:3000/members/sign_in
http://localhost:3000/members/sign_up

我收到以下錯誤:

No route matches {:controller=>"devise/browse", :action=>"all", :category=>0}

我觀察到的一種奇怪症狀是,如果我將root:to修改為=>'home#index',則消息是相同的。 我以為它至少會改變設計/房屋,但仍留在/瀏覽

最奇怪的是,我啟動了一個新的Clean Rails項目,該設計實際上是有效的。 我想知道是否是因為當我運行rails generate devise:install時發生了一些錯誤

確實陷入了這個問題。 有人能幫助我嗎?

親愛的上帝,我找出了問題的原因。 Devise在使用link_to語法時遇到麻煩。 臨時解決方案是將所有link_to修改為

<%= link_to "Home", :controller => "/browse", :action => "all" %>

在控制器名稱前加上/。 以下是有關該問題的更多詳細信息:github.com/plataformatec/devise/issues/471

您從哪里得到此錯誤? 即,您正在加載哪個頁面?

似乎您正在鏈接或路由到控制器“設計/瀏覽”的某物-相反,它應該僅路由到控制器“瀏覽”。 在rake路由生成的輸出中

browse_all GET    /browse/all(.:format)            browse#all

您會發現您顯然擁有一個帶有all方法的browse器控制器。

暫無
暫無

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

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