2017-05-04 10 views
1

메일 링리스트를 사용할 수있는 날짜가 오늘 인 경우 메일러를 시작할 수 있도록 메일러를 설정하려고합니다. 그렇게하려면 Date.today을 사용하고 있습니다. 다른 관련 코드 및 오류는 아래에 있습니다. 미리 감사드립니다.Rails 4 Mailer Uninitialized Constant

availabke_date_mailer.rb

class ListingAvailableDateMailer < ActionMailer::Base 
default from: "Nooklyn <[email protected]>" 

    def listing_available_expire(listing, agent) 
    @listing = listing 
    @agent = agent 
    mail to: "#{agent.email}", subject: 'Availability of your listing needs to be changed!' 
    end 
end 

listing_available_expire_notification.html.erb :

Hiya <%= @agent.first_name %>,<br><br> 

The Available Date for your listing has passed. Please make the necessary changes.<br><br> 

Listing: <%= link_to @listing.short_address, @listing, target: "_blank" %><br><br> 
Available Date: <%= @listing.date_available %><br><br>` 

available_date.rake :

namespace :listings do 
    desc "Send a message to an agent if the available date on their listing has passed" 
    task listing_available_expire: :environment do 
    Listing.all.each do |listing| 
     if listing.date_available == Date.today 
     ListingAvailableDateMailer.listing_available_expire(listing,listing.listing_agent).deliver_now 
     end 
    end 
    end 
end 

오류 : enter image description here

답변

5

availabke_date_mailer.rb 이름을 바꾸고 올바른 위치에 보관 :

app/mailers/listing_available_date_mailer.rb 

레일 당신을 위해 마법을 많이하지 않습니다,하지만 당신은 그 규칙을 따르는 경우에 마법에만 작동합니다. 자동 로딩을 허용하고 모든 파일을 수동으로 요구할 필요가없는 규칙 중 하나는 클래스 이름 (낙타의 경우)이 정의 된 파일의 이름 (밑줄)과 일치해야한다는 것입니다.

다음 단계에서는보기의 이름을 변경해야합니다. 가 필요한 다음 레일 규칙은 다음과 같이 이름을 수 있기 때문에 :

app/views/listing_available_date_mailer/listing_available_expire.html.erb 

읽기 레일 가이드에서 Action Mailer Basics에 대해.

+0

나는 몹시 괴롭다. 도와 주셔서 감사합니다! –