【问题标题】:Rails: Devise - user_signed_in not recognizedRails:设计 - user_signed_in 无法识别
【发布时间】:2012-06-07 12:17:02
【问题描述】:

我正在使用带有注册模型/控制器/视图(进行新注册)和用户模型进行编辑/更新/显示的设计。

一切似乎都运行良好(注册、确认等)。当我尝试在我的应用程序中使用 user_signed 方法时遇到问题。我收到以下错误消息:

undefined local variable or method `user_signed_in'

我在 StackOverflow 上研究了这个问题,并应用我从几个问答环节中学到的知识,我做了以下工作:

在我的用户模型 (user.rb) 中,我有以下内容:

devise :database_authenticatable

在我的用户控制器中,我添加了以下内容:

before_filter :authenticate_user!

但我仍然收到错误消息。我还尝试将 before_filter 添加到 Registration 控制器和 Application 控制器,但我仍然收到错误消息。

有什么想法吗?

解决方法

如果 current_user,我正在使用 some_action?

作为一种解决方法,但我仍然有兴趣弄清楚是否有人对原始问题有答案。

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    尝试添加问号

    user_signed_in?
    

    【讨论】:

    • 我不明白。 有效,但 无效。这两个序列不完全一样吗?
    • 不,他们不是。 Ruby 约定是一个以 ? 结尾的方法定义?返回一个布尔值。但它是实际方法定义的一部分。 user_signed_in 本身不返回任何内容,因为没有该名称的方法或变量。但是 user_signed_in 有一个?
    • ? 是方法名称的一部分。 Ruby 可以在函数名中使用标点符号。 def a? {}, def a?b {}, def a!b {}.
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    相关资源
    最近更新 更多