2016-12-04 9 views
0

顧客にpricelistsを送信する「静的フォーム」があります。メールを送信する必要がありますが、フォームのparams [:pricelist_name]はゼロです。Rails:ユーザーがフォームを送信する前にメールを送信する理由

私は電子メールがビューの前に送信されていることに気づいたので、ユーザーがフォームを送信した後にのみ電子メールを送信する方法を知りましたか?

乾杯、

コントローラ

def sendpricelist 
    @pricelist = params[:pricelist_name] || [] 
    @request_id = params["pricelist_name"] || [] 
    @test = "test" 
    SaasMailer.pricelist_request_email(@pricelist, @test, @request_id).deliver_now 
    #redirect_to :requests 
end 

ビュー

<%= form_tag(:controller => "requests", :action => "sendpricelist") do %> 
    <%= text_field(:post, :title, size: 69, class: 'form-control form-group-lg') %> 


<%= select_tag 'pricelist_name', 
    options_from_collection_for_select(Pricelist.all, :id, :name) %> 


    <%= submit_tag("Send pricelist")%> 



<% end %> 

ルート

devise_for :users 
resources :users 
resources :requests do 
resources :updates 
match '/sendpricelist',  to: 'requests#sendpricelist',   via: 'get' 

end 

出力:あなたが見ることができるように

'件名:[] - [] - テスト' のparamsがnilです。

Started GET "/requests/12/sendpricelist" for 127.0.0.1 at 2016-12-04 15:20:45 +0000 
Processing by RequestsController#sendpricelist as HTML 
    Parameters: {"request_id"=>"12"} 
    Rendered saas_mailer/pricelist_request_email.html.erb within layouts/mailer (0.2ms) 

SaasMailer#pricelist_request_email: processed outbound mail in 19.6ms 

Sent mail to re[email protected] (2012.5ms) 
Date: Sun, 04 Dec 2016 15:20:45 +0000 
From: [email protected] 
Reply-To: [email protected] 
To: [email protected] 
Message-ID: <[email protected]> 
Subject: [] - [] - test 
Mime-Version: 1.0 
Content-Type: text/html; 
charset=UTF-8 
Content-Transfer-Encoding: quoted-printable 

<html> 
    <body> 
    <!DOCTYPE html> 
<html> 
    <head> 
    <meta content=3D'text/html; charset=3DUTF-8' http-equiv=3D'Content-Ty= 
pe' /> 
    </head> 
    <body> 
    <h1><img src=3D"https://ci4.googleusercontent.com/proxy/HzK8rp8AJ2iFz= 
l3q5Z2jtTKO4tCzMTfOJ9WT7CAzSVpHdXm676yMNYhbZzgrNSjFyzkChWQRdKCSZe7M-xrt6q= 
IRl5wXoecqdqR3gUOINxF9CnwQoFC2YGQyG7FhdTAcWS9FNwRTDDh2KOkvTGxOOXOc=3Ds0-d= 
-e1-ft#http://www.sweetconcepts.com/wp-content/themes/twentysixteen-child= 
/assets/images/sc_logo.jpg" alt=3D"Sc logo" /></h1> 
    <p> 
     Bonjour Sandrine, 
    </p> 

    <p> 
     Merci pour votre demande nil. 
     <br></br> 
     J=E2=80=99ai joint en pi=C3=A8ce jointe les pricelists pour : 
    </p> 

     Pricelisttitle <a href=3D"https://s3.amazonaws.com/promosweetsdocs/= 
Confirmation.pdf">Lien</a> = 



    </body> 
</html> 
    </body> 
</html> 

    Pricelist Load (0.3ms) SELECT "pricelists".* FROM "pricelists" 
    Rendered requests/sendpricelist.html.erb within layouts/application (18.6ms) 
Completed 200 OK in 2228ms (Views: 134.3ms | ActiveRecord: 2.8ms) 


Started POST "/requests/12/sendpricelist" for 127.0.0.1 at 2016-12-04 15:20:51 +0000 
+0

はあなたのビューでこれを試してください:' <%= form_tag sendpricelist_path DO%> '([ソース](HTTP: //stackoverflow.com/questions/25984464/rails-4-form-tag-usage)) –

+0

@NoamHackerフォームを送信する前にメールが送信されます。乾杯。 – reme

+0

ActionController :: RoutingError([GET] "/ requests/12/sendpricelist"と一致するルートはありません): – reme

答えて

0

私は> =を経由してに私のルートを変更し、[:、取得:ポスト] `

関連する問題