Jason Pfeifer
2006-Jan-23 01:16 UTC
[Rails] learning how models, controllers, and views pass data
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'' %>
<!--[form:email]-->
<p><label
for="email_message">Message</label><br/>
<%= text_area ''email'', ''message''
%></p>
<!--[eoform:email]-->
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 = ''info@toropaintballs.com''
@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?
--
Posted via http://www.ruby-forum.com/.