この Railscast を使用して、Rails 3 で連絡先フォームを作成しています: http://railscasts.com/episodes/326-activeattr?view=asciicast
私が間違っている唯一のことは、メッセージの送信先を記入することです。次のコードを使用してメッセージを送信しました。
mail(:to => "me@myemail.com")
ただし、フォームを送信するたびに次のエラーが発生するため、これは機能していないようです。
NoMethodError in MessagesController#create
undefined method `mail' for #<MessagesController:0x00000103734bd8>
Application Trace | Framework Trace | Full Trace
app/controllers/messages_controller.rb:10:in `create'
メッセージを送信するには、この行を何に置き換える必要がありますか?
messages_controller.rb
class MessagesController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
UserMailer.contact_message(@message).deliver
redirect_to root_url, notice: "Message sent! Thank you for contacting us."
else
render "new"
end
end
end
user_mailer.rb
class UserMailer < ActionMailer::Base
def contact_message(message)
@message = message
mail(:to => "myemail@mymail.com", :subject => "New Message")
end
end
setup_mail.rb
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "mywebsite.com",
:user_name => "myemail",
:password => "secret",
:authentication => "plain",
:enable_starttls_auto => true
}
ActionMailer::Base.default_url_options[:host] = "localhost:3000"