それで、私はこの素晴らしく欠陥のあるチュートリアルに従いました: http://matharvard.ca/posts/2011/aug/22/contact-form-in-rails-3/
...お問い合わせフォームの作成について。それはうまくいきます。唯一の問題は、件名のみを送信することです。おそらく問題は通知メーラーにあると思います:
notifications_mailer.rb
class NotificationsMailer < ActionMailer::Base
default :from => "noreply@youdomain.dev"
default :to => "you@youremail.dev"
def new_message(message)
@message = message
mail(:subject => "[YourWebsite.tld] #{message.subject}")
end
end
もちろん、ユーザーが送信したすべての情報を送信したいと思います...(名前、電子メールアドレス、件名、本文.
また、件名がデフォルトに設定されている本文だけで、これの単純なバージョンをどのように実行できるか疑問に思っていました。(コメント付きの電子メールを私に送信する小さなコメント ボックスが必要です。) そのためにまったく新しいコントローラーとモデルを作成する必要がありますか、それとも両方を処理できますか?
アップデート
通知メーラー ビュー / new.html.erb
Name: <%= @message.name %>
Email: <%= @message.email %>
Subject: <%= @message.subject %>
Body: <%= @message.body %>
連絡先コントローラー
class ContactController < ApplicationController
def new
@message = Message.new
end
def create
@message = Message.new(params[:message])
if @message.valid?
NotificationsMailer.new_message(@message).deliver
flash[:success] = "Message was successfully sent."
redirect_to(root_path)
else
flash[:error] = "Please fill all fields."
render :new
end
end
end
メッセージ.rb
class Message
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :name, :email, :subject, :body
validates :name, :email, :subject, :body, :presence => true
validates :email, :format => { :with => %r{.+@.+\..+} }, :allow_blank => true
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
基本的には機能しますが、件名のみを送信します。また、件名以外のすべてを含む完全なメールを一度送信することもできました...しかし、どのように送信したか思い出せません。
このコンピュータを粉々に砕いて暴れまわっていいのか?
はぁ...
再度更新
これは、上記の設定でメールが言うことです:
件名: [liquid.radio] 件名が何であれ。本体:完全無地
これは、私が2週間前に何をしたとしても、彼らが言ったことです。
Subject: Message from liquid.radio
Body:
A contact enquiry was made by Richard Pryor at 2013-06-17 23:36.
Reply-To: richard@pryor.com
Subject: Scared for no reason Body: Oh
no... Oh God no! What is that?!
私がしたことは、通知コントローラーをいじっただけです。私は覚えていませんが... 私の人生のために... 私が何をしたか。しかし、ご覧のとおり...完全なメッセージを送信する必要があります...ただし、件名はまったく異なります。
ここで本当にちょっと助けが必要です。