2011-10-18 13 views
0

私のモデルパラメータをメールに送るにはどうすればよいですか?ここでレール3 mailer_action

は問題です:私はcardeallerアプリケーションを持っているとcar.showページに私がcars_controllerで

<%= link_to 'Send email request', send_to_mail_car_path(@car) %> 

を「電子メール要求を送信する」というリンクを作っ:

取り組んでいる
def send_to_mail 
    CarMailer.request_email(@car).deliver 
    @car = Car.find(params[:id]) 
    @search = Car.search(params[:search]) 
    redirect_to @car, :notice => "Notification sent." 
    end 

私はクライアントからのメールを受信します(それは開発段階のアプリです)。しかし、私はこの2つのファイルのプレーンテキストだけです。

request_email.html.erbrequest_email.text.erb

私はこれらのファイルに記述しますので、もし...それは私にエラーを与えるいくつかの車のデータを追加しようとしています:私は、メールでの車のIDを表示することができます

<%= @car.id %>、代わりに私は、画面上でこのエラーが発生しているID:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id 

4:  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /> 
5: </head> 
6: <body> 
7:  <h1> <%= @car.id %></h1> 
8:  <p> 

user.confirm_registrationのチュートリアルでも、この<% = user.name%>のように使用されていると、なぜ私ができる私は...メールでユーザー名を取得するために管理しましたその後、私の車で私の車を参照してください?

すべてのヘルプは評価されます。いくつかのチュートリアルは..ありがとうございます。

答えて

1

問題はここにある:

CarMailer.request_email(@car).deliver 
@car = Car.find(params[:id]) 

あなたは、あなたがそれを使用する前@carに割り当てる必要があります。

@car = Car.find(params[:id]) 
CarMailer.request_email(@car).deliver 
+0

私は7分、その後速く、この答えを受け入れることはできません:) – rmagnum2002

+0

を私はあなたのメールに画像を送信について1つの以上のものを求めることができますか? <(:元)asset.asset.url()%%= IMAGE_TAG> <% end %> ' – rmagnum2002

+0

ルックスこれは ' <@ car.assets%で資産に対する%を> ?:ように車belongs_toの写真=資産資産は、それが動作します良い。 Rubyでは、通常、@ car.assetsのアセットの代わりに '@car.assets.each do | asset |'を使用します。 – yfeldblum