Sending email body text based on form content


#1

As a noob to Rails and web development in general, I think I still need
a broader understanding of how Views, Controllers, and Models pass
information and variables to each other.

I’m creating a site that allows for email campaigns. I have a
‘create_email_controller’:

class Admin::CreateEmailController < Admin::BaseController
layout ‘admin’
def index
write
render :action => ‘write’
end

def write
@email = Email.new
end

def email_list
email = Email.find(:all)
email.each { |address| MailList::deliver_send_email(address) }
redirect_to (:action => @section)
end

end

where I want the user to type a message body into a textarea field:

<%= error_messages_for ‘email’ %>

Message
<%= text_area 'email', 'message' %>

I want to pass from the form a variable @message to email_list in the
controller, which passes to the MailList model:

class MailList < ActionMailer::Base
def send_email(email)
@recipients = email.address
@from = ‘removed_email_address@domain.invalid’
@subject = ‘Toro Paintball’
@body[‘full_name’] = email.fullname
## @message in here someway ##
end
end

which invokes the view send_email.rhtml:

Dear <%= @full_name %>,

<%= @message %>

Hope this isn’t way too long winded, but is this completely simple to do
without having to store @message as a session variable or in the DB?
Can I just take the value of the textarea, pass it through the
controllers and model to the view like this?


#2

On Jan 22, 2006, at 8:07 PM, Jason P. wrote:

As a noob to Rails and web development in general, I think I still
need
a broader understanding of how Views, Controllers, and Models pass
information and variables to each other.

You probably meant to post this on the rails list:
http://www.ruby-forum.com/forum/3