我正在编辑远程主机上的文件并点击C-x C-s,突然Emacs冻结了.那天早些时候工作; 我在十分钟之前就在同一个会话中从另一个缓冲区保存了.击中C-g它使其脱离悬挂状态,但它不会再保存.本地机器是OS X Leopard,远程是FreeBSD 7.4,Emacs是OS X的预编译下载24.1(9.0).
我做了M-x tramp-cleanup-all-connections,再试一次.没运气.我尝试了很多东西,包括关闭我的工作站并重新启动emacs.
跳到最后,我在.emacs中更改了以下行:
(setq tramp-verbose 10); had been 3
Run Code Online (Sandbox Code Playgroud)
我想我会以这种方式得到一些好的调试信息.所以我重新启动,并尝试编辑远程文件,想象我会在*debug tramp/ssh ...*缓冲区中看到一些东西.
瞧,我能够再次编辑远程文件.
我重置tramp-verbose为3,重新启动,并再次陷入困境.我把它切换回10,一切正常.它工作即使我设置tramp-debug-buffer为nil.
任何人都有任何想法为什么会这样?真正让我停下来的是Emacs经过几个月的无故障编辑后突然停止工作.
在阅读Keene的书时,我注意到它defgeneric有一个:method选项,它似乎允许你在泛型定义中指定一个方法.我见过的大多数文档都有单独定义的所有适用方法defmethod.该hyperspec,以其一贯的清晰度,列出:method作为一个选项defgeneric,但并没有说是什么意思.
该:method选项是否提供默认值,或者至少是文档,表示您期望最常见的用例,或者它是否具有其他语义?作为一个样式点,如果你希望只定义一个方法,那么在defgeneric表单中定义它是否更有意义(如果你可以,确实这样做),或者单独在一个defmethod?或者在这种情况下制作通用函数没有意义,而是使用常规函数defun?
我正在使用Devisegem执行基本身份验证。在中application_controller.rb,我具有以下内容before_action:
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :password])
devise_parameter_sanitizer.permit(:sign_in, keys: [:name, :password])
devise_parameter_sanitizer.permit(:account_update, keys: [:name, :password])
end
Run Code Online (Sandbox Code Playgroud)
当我尝试使用简单的名称/密码形式登录时,出现错误:“无效的电子邮件或密码”。我知道用户名和密码正确。电子邮件甚至都不是要发送的参数:
Started POST "/users/sign_in" for 127.0.0.1 at 2019-03-12 02:47:06 -0700
Processing by Devise::SessionsController#create as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"ltvCys0g2WE8JWRaoQOYbt6LLe9mtJGCQ0hAoCiLCVsXAvfLuTpm02jrJnLjKk4AARSO1B9YLe3QyTTBs1d8iw==", "user"=>{"name"=>"my_name", "password"=>"[FILTERED]"}, "commit"=>"Log in"}
Completed 401 Unauthorized in 3ms (ActiveRecord: 0.0ms)
Run Code Online (Sandbox Code Playgroud)
这里是user.rb:
class User < ApplicationRecord
devise :rememberable, :trackable, :lockable,
:database_authenticatable, :timeoutable,
:recoverable
validates :name,
:presence => true,
:uniqueness => {
:case_sensitive => false
}
def self.find_for_database_authentication(warden_conditions)
conditions …Run Code Online (Sandbox Code Playgroud)