【问题标题】:rails not allowing me to call a method from inside another method - rails keeps saying the method is undefinedrails 不允许我从另一个方法内部调用方法 - rails 一直说该方法未定义
【发布时间】:2012-06-19 00:59:50
【问题描述】:

在我的辅导课程模型中,我有在不同时间触发提醒文本的代码。一切正常,直到我尝试了一些重构,但现在我遇到了问题。

def send_reminder_text(texts_batch)
    texts_batch.each do |text|
        page_number = Refugee.find(text.refugee_id)[:last_page]
        body_of_text = text[:begin_time].in_time_zone.strftime("Burma Reminder: upcoming session at %I:%M%p beginning on page #{page_number}. 
            Please email jek2141@columbia.edu to reschedule or cancel the session.") 
        text.begin_text(body_of_text)
    end
end

def self.deliver_pm_reminder_text
    texts_batch = TutoringSession.batch_for_pm_reminder_text
    send_reminder_text(texts_batch)
end

def self.deliver_just_before_reminder_text
    texts_batch = TutoringSession.batch_for_just_before_reminder_text
    send_reminder_text(texts_batch)
end

当我调用deliver_just_before_reminder_text 函数时,我收到以下错误消息:

irb(main):006:0> TutoringSession.send_reminder_text
NoMethodError: undefined method `send_reminder_text' for #<Class:0x00000003cfe5d8>
    from /app/vendor/bundle/ruby/1.9.1/gems/activerecord-3.1.1/lib/active_record   /base.rb:1088:in `method_missing'
from (irb):6
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands/console.rb:45:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands/console.rb:8:in `start'
from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.1.1/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

尽管send_reminder_text 已在上面明确定义。

【问题讨论】:

    标签: ruby-on-rails methods rails-models


    【解决方案1】:

    您的方法声明指定该方法在 TutoringSession 类的对象上:

    def send_reminder_text(texts_batch)
    

    但是你试图调用它,就好像它是类本身的一个方法:

    irb(main):006:0> TutoringSession.send_reminder_text
    

    尝试将您的定义更改为:

    def self.send_reminder_text(texts_batch)
    

    【讨论】:

      猜你喜欢
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2021-11-21
      • 1970-01-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多