我以前有以下模型方法,我使用if @invitation.invite_expired? ...
调用它:
def invite_expired?
cycle_invite_sent_at < 2.hours.ago
end
因为我想将此方法用于多个过期检查,所以我尝试创建一个“meta”方法,如下所示:
def expired?(what)
check = send("#{what}_invite_sent_at")
check < 2.hours.ago #Also tried "self.check" but that made no difference.
end
我使用:
if @invitation.expired?(cycle) ...
调用此方法但是,现在所有类型的测试都失败了,并显示消息:NameError: undefined local variable or method `cycle' for #<InvitationsController:0x0000000a5e8d50>
有人看到我做错什么了吗?
最佳答案
你应该像这样使用它:
if @invitation.expired?("cycle")
# some code here.
我假设这是因为控制器代码中出现了
undefined local variable or method 'cycle'
,当您尝试使用纯cycle
而不是字符串"cycle"
时,就会发生这种情况。关于ruby-on-rails - 如何创建此模型元方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31896316/