我正在使用Rails 4.0.2和Devise 3.2.2来处理用户注册/身份验证。我启用了:confirmable
如何在我的应用程序中访问/调用设计受保护的方法? 我正在尝试使用
中受保护的confirmation_period_expired?
方法
但我收到NoMethodError: protected method confirmation_period_expired?
错误。
感谢您的帮助。
答案 0 :(得分:4)
通常不是一个好主意,但如果你绝对必须:
@user.send(:confirmation_period_expired?)
会这样做。
答案 1 :(得分:1)
除了send
,您可以在User
上定义公共方法。此方法可以自行调用受保护的方法。
class User
def is_confirmation_period_expired?
self.confirmation_period_expired? # self is optional
end
end
您可以在没有错误的情况下在用户上调用该方法:@user.is_confirmation_period_expired?