J'ai un modèle appelé Contact_Email. Lorsqu'un modèle de courrier électronique est envoyé via ActionMailer à un contact spécifique, dans le cadre de l'action Créer, il l'envoie via .save.Comment créer une autre action de contrôleur pour créer un objet dans des rails?
Cependant, je souhaite créer une action "ignorer" qui crée également un Contact_Email, mais n'envoie PAS d'ActionMailer et me permet de définir l'état différemment.
Je veux créer une action distincte parce que je veux que ce soit répondre à un remote_for_tag afin que je puisse avoir juste un bouton ajax indiquer qu'il a été « sautée »:
Voici ce que j'ai essayé, mais alors qu'il crée un Contact_Email, je finis par recevoir une erreur lorsque je veux revenir en arrière et voir à nouveau tous les Contacts.
def skip
@contact_email = ContactEmail.new
@contact_email.contact_id = params[:contact_id]
@contact_email.email_id = params[:email_id]
@contact_email.status = "skipped"
if @contact_email.save
flash[:notice] = "skipped email"
redirect_to contact_emails_url
end
end
Quelle est l'erreur? Le code que vous montrez semble bien. –
Lorsque j'essaie d'afficher une liste de tous les emails qui sont "en retard", j'obtiens un "attendez 1 attribut)" ou quelque chose d'erreur. Il est corrigé lorsque je modifie le contact_email nouvellement créé et enregistre, ce qui crée un created_date et sent_date. Ensuite, l'erreur disparaît, mais je n'utilise pas ces dates ... Je suppose que je pourrais juste l'ajouter dans le contrôleur pour voir ...? – Angela