Contact Us form in Rails 3

后端 未结 3 386
长情又很酷
长情又很酷 2020-12-28 10:00

I simply want a contact us form with name, email and message fields in my Rails app, I don\'t want to save(permanently) the message I just want to send the message as an ema

3条回答
  •  情话喂你
    2020-12-28 10:25

    In Rails3, you can create an ActiveModel model:

    # /app/models/contact_us.rb
    class ContactUs
    
      include ActiveModel::Validations
      include ActiveModel::Conversion
      extend ActiveModel::Naming
    
      attr_accessor :name, :email, :message
    
      def initialize(attributes = {})
        attributes.each do |name, value|
          send("#{name}=", value)
        end
      end
    
      def persisted?
        false
      end
    end
    

    then a mailer:

    # /app/mailer/contact_us_mailer.rb
    class ContactUsMailer < ActionMailer::Base
    
      default :to => "your@address.com"
    
      def send(message)
        @message = message
        mail( :subject => @message.subject, :from => @message.email ) do |format|
          format.text
        end
      end
    end
    

    and a view:

    # /app/views/contact_us_mailer/sent.text.erb
    Message sent by <%= @message.name %>
    <%= @message.message %>
    

    I didn't test this code exactly, but I just want to let you get the idea…

提交回复
热议问题