2012-03-09 13 views
0

特定のユーザーが自分の製品に興味を持っている場合は、そのユーザーに電子メールを送信できます。私の電子メールでは、ユーザーから引き出された特定の情報を含めたいと思いますが、現時点ではアプリケーションで別の場所で使用されているにもかかわらず、定義されていないとエラーが表示されます。私は以下のメールをコピーし、<%>の間のものは私が含めたいものであり、誰かが正しい方向に私を向けることができ、正しいものかそうでないものかを教えてくれるのだろうかと思っていました。どんな助けも素晴らしいだろう。送信したいメッセージは次のとおりです。ActionMailerメッセージ配信コンテンツ

Hello <%@user.username%> 

The user <% current_user.username %> has registered an interest in the following product of yours: 

<% @game.game_name %> 
<% @game.console %> 
<% @game.genre %> 

The user <% current_user.usernames %> has the following games for offer: 

<% current_user.game.game_name %> 
<% current_user.game.game_name %> 
<% current_user.game.game_name %> 

To view <% current_user.username %> profile click <% link_to "here", current_user.show %> 
If you wish to contact the user by email then contact the following email <% current_user.email %>. 

私はそれが合理的であることを望みます。私が持っているものをさらに深く理解するために、ユーザー情報を含むusersテーブルと、user_idの外部キーを持つゲーム情報を持つゲームテーブルがあります。ユーザーにはhave_manyというゲームがあり、ゲームにはbelongs_toというユーザーがいます。

UPDATE

class GameTrade < ActionMailer::Base 
    default :from => "[email protected]" 

    def game_interest(user) 
     @user = user 
     @game = game 
     mail :to => user.email, :subject => "Game Interest" 
    end 
    end 
+0

メーラーメソッドをここに含めることはできますか?私はあなたが@gameをどのようにセットアップしているのかを見たいと思います。 –

+0

こんにちはベン、私は自分の投稿を自分のメーラーメソッドで更新しました。私は '@ game = game'と言った '@user = user'の下に行がありましたが、それはうまくいかないでしょう。 – user1222136

+0

ですから、game_interestメーラー関数で '@ game'を設定していないので、あなたのビューには設定されません。あなたはメソッドのパラメータとして 'game'を渡すことも、他の方法で取得することもできます(@ user.gameのようなものです) –

答えて

1

http://guides.rubyonrails.org/action_mailer_basics.htmlによると、アクションメーラーは「抽象コントローラから継承」ではなく、あなたのApplicationControllerにから、私はcurrent_userを定義することを期待しないでしょう。また、userはどこから来ますか?コントローラと関連するビューと同様に、一般的なプラクティスは、メーラー内に@user,@gameなどのインスタンス変数を定義してから、これらのビューにアクセスすることです。

多くの電子メールの送信を開始すると、電子メールを非同期(例:delayed_jobまたはresque)に送信する必要があるため、current_userはここでは意味がありません。その場合、要求/応答サイクルに含まれていないため、現在のユーザーは要求を出していません。

+0

私は誤って入力したときにatを除外したので、私は@userの部分を更新しました。その部分は正常に動作しますが、ゲームの部分は機能しません。私は定義されていないメソッド 'name of column'というエラーを受け取っていますので、未定義のメソッド 'game_name'などです。 – user1222136

+0

すべてソートされました。 – user1222136

関連する問題