我有一个目录网站。每个“目录”都是一个列表。每个列表模型都有一个电子邮件属性
如何让我的用户向“列表所有者”发送电子邮件?
到目前为止,我的想法是使用ContactForm Gem并在我的Listing模型中添加:email属性。然后使用ContactForm Gem并在每个显示页面中放置一个表单。但是我的方法不起作用。关于如何让ContactForm模型接受@ listing.email属性的任何想法?
如果不是这样做的另一种方法是什么? 感谢您的帮助!
我的控制器如下所示:
控制器:
class ContactFormsController < ApplicationController
def new
@listing = Listing.params[:id]
@contact_form = ContactForm.new
end
def create
begin @contact_form = ContactForm.new(params[:contact_form])
@contact_form.request = request
if @contact_form.deliver
flash.now[:notice] = 'Thank you for your interest!'
redirect_to root_path
else
render :new
end
rescue ScriptError
flash[:error] = 'Sorry, something was wrong'
end
end
end
型号:
class ContactForm < MailForm::Base
attribute :name, :validate => true
attribute :email, :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
attribute :file, :attachment => true
attribute :message
attribute :nickname, :captcha => true
# Declare the e-mail headers. It accepts anything the mail method
# in ActionMailer accepts.
def headers
{
:subject => "My Contact Form",
:to => "#{@listing.email}",
:from => %("#{name}" <#{email}>)
}
end
end