2011-12-20 4 views
0

私は勧告has_many Approvalsを持っています。rails 3:作成したオブジェクトにActionMailerのlink_toを書くにはどうすればいいですか?

承認が1つの場合、ユーザーは承認する必要がある次のユーザーの電子メールアドレスを指定します。 create_next_approval方法で

私の承認モデルで

after_save :create_next_approval, :approval_notification 


    attr_accessor :next_approver_email 

    def recently_approved? 
     self.approved_changed? && self.approved? 
    end 

    def create_next_approval 
     #self.recommendations.create :email => self.next_approver_email if next_approver_email.present? && recently_approved? 

     next_approval = self.recommendation.approvals.build(:email => self.next_approver_email) 
     next_approval.save if next_approver_email.present? && recently_approved? 
    end 
private 
    def approval_notification 
    ApprovalMailer.needs_approval(self).deliver 
    end 

、私はnext_approvalを保存しています。私はnext_approver_emailアドレスに推奨を承認するように依頼する電子メールを送信します。

私はここでこの承認を保存しています。私は、送信された電子メールにリンクする必要があります。

答えて

0

私はあなたに正しく従ってください。保存したばかりの承認にリンクする必要があります。これはselfとなります。その場合

あなたは、通常のルートを設定している場合は、このような何かがあなたのメールに働くだろう:<%= link_to "approval link", approval_path(self) %>

は私が正しく、次のよなら、私に教えてください。

+0

私のルートはhttps://gist.github.com/1502681で、私はそのようなビューで自分自身を呼び出すことができるか分からなかった –

+0

私はそれがrecommendation_approval_path(self)のようなものである必要があると思う... –

+0

はい、これらのルートでは、TJは正しいです。メソッドの属性として自分自身をビューに渡すので、それは利用可能です。 – Stone

関連する問題