2012-04-04 11 views
1

これは私のサイトの特定のイベントを承認する方法です。 アイデアは: 新しいイベントが発生するたびに、「[email protected]」に電子メールが送信されます。電子メールには、特定のものと、「承認済み」ブール値を変更するメソッドへのリンクが含まれています。 すべては、電子メールで生成されたURLとは別に動作します。
http://example.com/approve_eventを生成します。そして私は、私が何かRails 3.1のメール内のlink_toに値を渡すには?

def approve_event(event) 
    @event = event  
    mail(:to => "[email protected]", :subject => "Event pending of approval") 
    end 

AdminNotifier

http://example.com/approve_event?=23ような電子メールビューのHTML

を指すURLを取得するために行う必要がありますどのように

「nilをIDを持つイベントが見つかりませんでした」というエラーが表示されます

= link_to "Approve", approve_event_url(:id=> @event.id) 

EventController

def approved 
    @event = Event.find(params[:id]) 
    @event.approved = true 
    @event.save 
end 
+0

どのように 'メーラーの@ event'を取得していますか? – alf

+0

私はEventControllerからメーラーを呼び出します。 AdminMailer.approve_event(@event).deliver 私はmailerメソッドに次のようなものを入れます:@event = Event.find(params [:id]) –

+1

ビューで '@ event'を使用しています。メーラーに '@ event'変数を定義する必要があります。 'approve_event'メソッドを見て、有効なイベントオブジェクトを使用しているかどうかを確認してください。 – alf

答えて

0

@event変数がメーラーメソッド(この場合はapprove_event)で正しく定義されていることを確認して、ビューで使用できるようにする必要があります。

More info on the Rails guides

関連する問題