Controller du mailer

salu à tous,

je viens de faire un ‘script/generate mailer Notifier’ mais ça ne m’a
pas crée de controller, je suis censé les mettre où les fonctions qui
correspondent aux views du notifier?
J’éssais de suivre lexemple du
http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer

MAis je ne sais pas très bien où mettre def signup_thanks vu que ça ne
m’a pas créer de controller, je dois le créer moi-même le controller
du mailler?

merci d’avance

Pat

ok merci, et pour appeller a fonction je fais comment pour lui passer
les params au model?
Comment tu fais pour appeller ta fonction demande_moderation(comment)
sans passer par les params parceque moi j’utilise un forumulaire et du
coup je me retrouve avec plein de params partout.
sachant que ma fonction est:
def mail_user( )

Email header info MUST be added here

@user= User.find(params[:id])
@recipients = user.email
@from = “[email protected]
@subject = “Thank you for registering with our website”

Email body substitutions go here

@body[“message”] = params[:message]
end

et mon formulaire pour envoyer un mail

<%= form_remote_tag( :update => ‘sendmail’
:url => { :action => ‘mail_user’, :id =>
params[:id] }) %>

Subject
<%= text_field :send, :email %>

Message
<%= text_area :send, :body,:cols => 50, :rows => 3 %>

<%= submit_tag 'Send' %>

Salut Patrick

ce n’est pas un controller mais un model donc tu le trouveras dans
dans le dossier models

les fonctions sont donc dans model voila un exemple
mon code perso

class CommentNotifier < ActionMailer::Base

def demande_moderation(comment)
setup_email(comment)
@subject += “Demande de Modération pour #
{comment.faq.question_fr}”
@body[:url_faq] = “http://localhost:3000/faq_categories/#
{comment.faq.faq_category_id}/faqs/#{comment.faq.id}”
@body[:comment_destroy] = “http://localhost:3000/comments/
destroy/#{comment.id}?method=delete”
@body[:comment_approuve] = “http://localhost:3000/comments/
approved/#{comment.id}”
@body[:comment_index] = “http://localhost:3000/comments/
end

protected
def setup_email(comment)
@recipients = “[email protected]
@from = “[email protected]
@subject = “http://localhost:3000/
@sent_on = Time.now
@body[:comment] = comment
@body[:comments_unapprouved] = Comment.count :conditions =>
[‘approved = ?’, false]
@body[:faq] = comment.faq
end
end

et ma vue qui se trouve dans vue/comment_notifier
Un nouveau commentaire sur la faq n°<%= @comment.faq.id %> sur “<%=
@comment.faq.question_fr %>” attend votre approbation
<%= @url_faq %>

Auteur : <%= @comment.nom %> (IP: <%= @comment.ip %>)
E-mail : <%= @comment.mail %>
commentaire :
<%= @comment.message %>

Pour valider ce commentaire, allez ici : <%= @comment_approuve %>
Effacer ce commentaire : <%= @comment_destroy %>
En ce moment, <%= @comments_unapprouved %> commentaire(s) attendent
vos approbation.
Voire tous les commentaires <%= @comment_index %>

Le 28 oct. 06 à 12:03, Patrick A. a écrit :

m’a pas créer de controller, je dois le créer moi-même le controller
du mailler?

merci d’avance

Pat


Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Bolo M.
[email protected]
http://blog.developpez.com/index.php?blog=30

Moi j’ utilse un observer

class CommentObserver < ActiveRecord::Observer

#quand le commentaire est creer on envois une notification
def after_create(comment)
CommentNotifier.deliver_demande_moderation(comment)
end
end

donc dans mon cas je passe directement l’objet

Le 28 oct. 06 à 12:23, Patrick A. a écrit :

@from = “[email protected]
params[:id] }) %>

Subject
<%= text_field :send, :email %>

Message
<%= text_area :send, :body,:cols => 50, :rows => 3 %>

<%= submit_tag 'Send' %> _______________________________________________ Railsfrance mailing list [email protected] http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Bolo M.
[email protected]
http://blog.developpez.com/index.php?blog=30

ah oui non c’est bon j’ai compris merci :slight_smile:

ok j’ai un ptit problème:
voilà mon formulaire:
<%= form_remote_tag( :update => ‘editpassword’,
:url => { :action => ‘send_mail_to_user’, :id
=> params[:id] }) %>

Subject
<%= text_field :send, :subject %>

Message
<%= text_area :send, :body,:cols => 50, :rows => 3 %>

<%= submit_tag 'Send' %> <%= end_form_tag %>

mon controller user:
def send_mail_to_user
@subject=params[:send][:subject]
@message=params[:send][:body]
@user = User.find(params[:id])
Notifier::mail_user @user,@message,@subject

render :nothing => true
end

et ma fonction mail_user dans mon model notifier:
def mail_user( user,subject,body )

Email header info MUST be added here

@user= user
@recipients = user.email
@from = “[email protected]
@subject = @subject

Email body substitutions go here

@body[“message”] = body
end

pourtant quand je click sur submit il me sort que la fonction
mail_user n’existe pas:
NoMethodError in UsersController#send_mail_to_user
undefined method mail_user' for Notifier:Class RAILS_ROOT: script/../config/.. Application Trace | Framework Trace | Full Trace /usr/lib/ruby/gems/1.8/gems/actionmailer-1.2.5/lib/action_mailer/base.rb:293:inmethod_missing’
app/controllers/users_controller.rb:105:in `send_mail_to_user’

pourtant elle existe bien la fonction non?

merci d’avance

Pat

il manque un tit mot deliver

Notifier::deliver_mail_user @user,@message,@subject

Le 28 oct. 06 à 12:54, Patrick A. a écrit :

<%= end_form_tag %>

end
app/controllers/users_controller.rb:105:in `send_mail_to_user’

pourtant elle existe bien la fonction non?

merci d’avance

Pat


Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance

Bolo M.
[email protected]
http://blog.developpez.com/index.php?blog=30

On 10/28/06, Bolo M. [email protected] wrote:

il manque un tit mot deliver
merci!