-1

私は Rails の初心者で、アプリの連絡フォームを作成しようとしていますが、モデルを関連付けずに Emailer クラスの連絡フォームからのパラメーター (名前やメッセージなど) をキャッチできません。それについて何か提案はありますか?クラスとコントローラのリストは次のとおりです。私のメーラークラスは次のとおりです。

class Contact < ActionMailer::Base
default from: "from@example.com"

# Subject can be set in your I18n file at config/locales/en.yml
# with the following lookup:
#   en.contact.send_email.subject
def send_email(contact)
@greeting = "Hi"

mail to: "ostadfree@gmail.com"
end
end

Staticpages コントローラーは次のとおりです。

def email_contact()
  Contact.send_email().deliver
  redirect_to contact_url
end

Contact.html.erb には、フォームと最後に 2 つのボタンが含まれています。

 <%= submit_tag "Submit", class: "btn btn-large btn-primary" %>
 <%= link_to 'Send Email', email_contact_path %>

そして send_email.text.erb は:

Contact#send_email

<%= @greeting %>, find me in app/views/app/views/contact/send_email.text.erb
<%#= "Name :" + @name.to_s %>

ありがとう。

4

2 に答える 2

4

コードに基づいて、レールがどのように機能するように設計されているかを本当に把握していません。ここでこのような質問に回答するよりも、チュートリアルに従う方がよいでしょう。

http://seanrucker.com/simple-ruby-on-rails-contact-form-using-activemodel-and-pony/

于 2013-10-17T19:48:49.770 に答える
1

これを試して:

メーラーで:

def send_email(name,message)
  @greeting = "Hi"
  @name = name
  @message = message
  mail to: "ostadfree@gmail.com"
end

コントローラーで:

def email_contact()
  Contact.send_email(params[:name],params[:message]).deliver
  redirect_to contact_url
end

wherenameおよびmessage- フォームのフィールドの名前。以前にメールを送信した場合、そのコードは機能するはずです。

とにかく、実際に確認してください: http://guides.rubyonrails.org/action_controller_overview.html#parameters

于 2013-10-17T19:52:02.887 に答える