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
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:in
method_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!