Il y a un certain nombre de problèmes que vous devez corriger:
Ajouter cette ligne à un de vos blocs de configuration (soit en environment.rb
ou chacun des fichiers config/environment
):
config.action_mailer.default_url_options = {:host => 'somewhere.com'}
En app/models/invitation.rb
sur ligne 3 vous avez appelez attr_accessible :recipient_email
cela vous empêchera d'attribuer massivement l'expéditeur. Vous devez changer à ceci:
attr_accessible :recipient_email, :sender, :sender_id
Aussi invitations_controller.rb
devrait ressembler à ceci:
class InvitationsController < ApplicationController
before_filter :require_analyst
def new
@invitation = Invitation.new
end
def create
@invitation = Invitation.new(params[:invitation])
@invitation.sender = current_analyst
if @invitation.save
flash[:notice] = "Thank you, invitation sent."
redirect_to root_url
else
render :action => 'new'
end
end
end
Vous ne pouvez vraiment pas envoyer une invitation à moins que vous êtes connecté (car vous avez besoin d'un expéditeur, qui dans ce cas est un current_analyst
pas @current_user
), donc les lignes ayant une logique différente selon la connexion ou non ont été supprimées.
En outre, l'e-mail sera envoyé automatiquement par le modèle d'invitation afin d'appeler Mailer.deliver_invitation(@invitation, signup_url(@invitation.token))
est inutile (et en fait, il devrait être AnalystInvitationMailer.deliver_invitation(@invitation)
)
Vous pouvez voir un patch de travail complet ici: http://gist.github.com/290911
Avez-vous configuré ActionMailer? (http://wiki.rubyonrails.org/howtos/mailers) Aussi, dans quels environnements voyez-vous cela? ActionMailer se comporte différemment dans le test, le développement et la production. –
Je le crois. Voici le mailer basé sur ActionMailer: http://github.com/allyforce/RQ-Upload/blob/master/app/models/analyst_invitation_mailer.rb Et dans la configuration j'ai ajouté des configurations ActionMailer: http: // github .com/allyforce/RQ-Upload/blob/master/config/environnement.rb – Angela