2012-05-18 5 views
1

나는이처럼 보이는 (잘라 다운) 모델이 있습니다레일 모델에 Twitter.update하는 방법

예상대로
class MyModel < ActiveRecord::Base 
    def self.update_status 
     event_time = time_ago_in_words 30.minutes.from_now 
     Twitter.update("Event is starting in #{event_time}") 
    end 
end 

, 나는 때문에 방법 'time_ago_in_words를 사용하려고에 NoMethodError 예외를 얻고있다 'DateHelper에서. 이것을 어떻게 성취해야하며, 아마도 더 중요한 것은 올바른 방향으로가는 것입니까? 모델의

+0

나는'Twitter.update'가 다른 사람의 트위터 계정에 새로운 트윗을 올리는다고 가정합니다. – Mischa

+0

예, 맞습니다. 이 예제에서는 필요하지 않은 코드를 제거했습니다. – sudoash

답변

1
  1. extend ActionView::Helpers::DateHelper
  2. 변경 30.mins.from_now30.minutes.from_now

에 난 그냥 그것을 자신을 시도하고는 다음을 수행 아무런 문제가 없습니다 :

class MyModel < ActiveRecord::Base 
    extend ActionView::Helpers::DateHelper 

    def self.update_status 
    event_time = time_ago_in_words(30.minutes.from_now) 
    Twitter.update("Event is starting in #{event_time}") 
    end 
end 

당신이 가진 것은 extend를 사용하는 대신에 include. 자세한 내용은 this article을 참조하십시오.

+0

1. 나는 이것을 모델, 메소드 외부 및 내부에 추가하려고 시도했지만 동일한 오류가 발생합니다. 왜 다른 Stackoverflow 질문에 동일한 대답을 언급 한 이후로 나는 이해할 수 없다. 2. 예제 코드에서 미안하다. 미안하다. – sudoash

+0

내 대답이 업데이트되었습니다. 이 방법으로 문제가 해결되지 않으면 자세한 내용을 게시하십시오. – Mischa

+0

나는 내 문제를 깨달았고, 나의 예에서 또 하나의 중대한 실수를 저 지르지 않았다. 내 update_status 메서드는 실제로 self.update_status이므로 MyModel.update_status를 실행하면 NoMethodError가 발생합니다. – sudoash

관련 문제