Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 Desive rails 3.1.3无路线匹配[删除]”/用户/注销;_Ruby On Rails_Ruby On Rails 3_Devise - Fatal编程技术网

Ruby on rails Desive rails 3.1.3无路线匹配[删除]”/用户/注销;

Ruby on rails Desive rails 3.1.3无路线匹配[删除]”/用户/注销;,ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我在使用Desive 1.1.9和rails 3.1.3与注销链接时遇到问题 <%= link_to 'sign out', destroy_user_session_path, :method => :delete %> 非常感谢您的帮助 更新: 下面的答案建议改变 config.sign_out_via=:get to:删除,但我在下面的designe.rb文件中没有该行 # Use this hook to configure devise mailer, warden

我在使用Desive 1.1.9和rails 3.1.3与注销链接时遇到问题

<%= link_to 'sign out', destroy_user_session_path, :method => :delete %>
非常感谢您的帮助

更新:

下面的答案建议改变 config.sign_out_via=:get to:删除,但我在下面的designe.rb文件中没有该行

# Use this hook to configure devise mailer, warden hooks and so forth. The first
# four configuration values can also be set straight in your models.
Devise.setup do |config|
# ==> Mailer Configuration
# Configure the e-mail address which will be shown in DeviseMailer.
config.mailer_sender = "please-change-me@config-initializers-devise.com"

# Configure the class responsible to send e-mails.
# config.mailer = "Devise::Mailer"

# ==> ORM configuration
# Load and configure the ORM. Supports :active_record (default) and
# :mongoid (bson_ext recommended) by default. Other ORMs may be
# available as additional gems.
require 'devise/orm/active_record'

# ==> Configuration for any authentication mechanism
# Configure which keys are used when authenticating an user. By default is
# just :email. You can configure it to use [:username, :subdomain], so for
# authenticating an user, both parameters are required. Remember that those
# parameters are used only when authenticating and not when retrieving from
# session. If you need permissions, you should implement that in a before filter.
 config.authentication_keys = [ :email ]

# Tell if authentication through request.params is enabled. True by default.
 config.params_authenticatable = true

# Tell if authentication through HTTP Basic Auth is enabled. False by default.
# config.http_authenticatable = false

# Set this to true to use Basic Auth for AJAX requests.  True by default.
# config.http_authenticatable_on_xhr = true

# The realm used in Http Basic Authentication
# config.http_authentication_realm = "Application"

# ==> Configuration for :database_authenticatable
# For bcrypt, this is the cost for hashing the password and defaults to 10. If
# using other encryptors, it sets how many times you want the password re-encrypted.
config.stretches = 10

# Define which will be the encryption algorithm. Devise also supports encryptors
# from others authentication tools as :clearance_sha1, :authlogic_sha512 (then
# you should set stretches above to 20 for default behavior) and :restful_authentication_sha1
# (then you should set stretches to 10, and copy REST_AUTH_SITE_KEY to pepper)
config.encryptor = :bcrypt

# Setup a pepper to generate the encrypted password.
config.pepper =   "hidden"

# ==> Configuration for :confirmable
# The time you want to give your user to confirm his account. During this time
# he will be able to access your application without confirming. Default is nil.
# When confirm_within is zero, the user won't be able to sign in without confirming. 
# You can use this to let your user access some features of your application 
# without confirming the account, but blocking it after a certain period 
# (ie 2 days). 
# config.confirm_within = 2.days

# ==> Configuration for :rememberable
# The time the user will be remembered without asking for credentials again.
# config.remember_for = 2.weeks

# If true, a valid remember token can be re-used between multiple browsers.
# config.remember_across_browsers = true

# If true, extends the user's remember period when remembered via cookie.
# config.extend_remember_period = false

# ==> Configuration for :validatable
# Range for password length
 config.password_length = 6..20

# Regex to use to validate the email address
 config.email_regexp = /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i

# ==> Configuration for :timeoutable
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again.
# config.timeout_in = 10.minutes

# ==> Configuration for :lockable
# Defines which strategy will be used to lock an account.
# :failed_attempts = Locks an account after a number of failed attempts to sign in.
# :none            = No lock strategy. You should handle locking by yourself.
# config.lock_strategy = :failed_attempts

# Defines which strategy will be used to unlock an account.
# :email = Sends an unlock link to the user email
# :time  = Re-enables login after a certain amount of time (see :unlock_in below)
# :both  = Enables both strategies
# :none  = No unlock strategy. You should handle unlocking by yourself.
# config.unlock_strategy = :both

# Number of authentication tries before locking an account if lock_strategy
# is failed attempts.
# config.maximum_attempts = 20

# Time interval to unlock the account if :time is enabled as unlock_strategy.
# config.unlock_in = 1.hour

# ==> Configuration for :token_authenticatable
# Defines name of the authentication token params key
# config.token_authentication_key = :auth_token

# ==> Scopes configuration
# Turn scoped views on. Before rendering "sessions/new", it will first check for
# "users/sessions/new". It's turned off by default because it's slower if you
# are using only default views.
 config.scoped_views = true

# Configure the default scope given to Warden. By default it's the first
# devise role declared in your routes.
# config.default_scope = :user

# Configure sign_out behavior. 
# By default sign_out is scoped (i.e. /users/sign_out affects only :user scope).
# In case of sign_out_all_scopes set to true any logout action will sign out all active scopes.
 config.sign_out_all_scopes = true

# ==> Navigation configuration
# Lists the formats that should be treated as navigational. Formats like
# :html, should redirect to the sign in page when the user does not have
# access, but formats like :xml or :json, should return 401.
# If you have any extra navigational formats, like :iphone or :mobile, you
# should add them to the navigational formats lists. Default is [:html]
# config.navigational_formats = [:html, :iphone]


# ==> Warden configuration
# If you want to use other strategies, that are not (yet) supported by Devise,
# you can configure them inside the config.warden block. The example below
# allows you to setup OAuth, using http://github.com/roman/warden_oauth
#
# config.warden do |manager|
#   manager.oauth(:twitter) do |twitter|
#     twitter.consumer_secret = <YOUR CONSUMER SECRET>
#     twitter.consumer_key  = <YOUR CONSUMER KEY>
#     twitter.options :site => 'http://twitter.com'
#   end
#   manager.default_strategies(:scope => :user).unshift :twitter_oauth
# end
end
使服务器无法启动
再次感谢

用户/注销路由在您的路由输出中有一个GET请求,而不是DELETE请求

我怀疑您的
config/initializer/develope.rb中有类似的内容:

config.sign_out_via = :get

默认情况下,此选项设置为
:delete

出于多种原因,您不应在designe.rb文件中通过=:get to:delete更改您的config.sign\u out\u

1) 这会将2的删除操作更改为Get而不是delete

2) 您在此处编写的每个测试都将反映为具有Get请求的delete。这意味着行动的结果是不正确的

3) 你的代码是正确的,这正是我所拥有的

作为一个初学者,让我来尝试一下我认为的问题是什么。当我遇到这个错误时,我在雇员再培训局结束时确认:“你确定吗?”。我改变了erb标签内的位置,它起了作用。我认为这可能与未注册方法::delete的路由有关

> rails generate devise:views
  • 带有此生成器的My Desive视图文件夹:
  • routes.rb上的路由,带有
    为:用户设计

您遇到的问题是什么?你有错误吗?它只是保持登录状态吗?请提供一些解释。我的意思是,如果您使用此生成器生成所有视图,包括/users/sign_out和routes。这是my Desive的“视图”文件夹和routes中的“Desive_for:users”路由。rbA您现在提供的一些解释对新用户很有帮助,必须在场。干杯
config.sign_out_via = :get
config.sign_out_via = :get
> rails generate devise:views