Bonjour,

Je veux faire un formulaire de contact mais je rencontrer un problème que je comprend pas

Ce que je fais

Donc j'ai bien mon mailer mon model mes vue ect.... le mail n'est dans aucune base de donnée ;)

mon controller

  def contact
    @contact = Contact.new
  end

  def sending
    @contact = Contact.new params[:contact]
    if @contact.valid?
      ContactMailer.contact(@contact).deliver
    end
  end

mon model

class Contact
  include ActiveModel::Validations

  include ActiveModel::Conversion

  include ActiveModel::Naming

  attr_accessor :nom, :objet, :email, :message

  validates :nom, :objet, :email, :message, presence: true

  validates :email, :format => { :with => %r{/\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i} }, allow_blank: true

  def persisted?

    false

  end

  def initialize(attributes = {})

    attributes.each do |name, value|

      send("#{name}=", value)

    end

  end
end

mon route

  get  '/contact',to: 'client#contact', as: 'contact'
  post '/contact',to: 'client#sending', as: 'sending'

Ce que j'obtiens

J'obtient une page qui me dit que mes params son a nul (nil)

https://www.noelshack.com/2017-25-7-1498415557-capture-d-ecran-2017-06-25-20-31-25.png
Voici un screenshot

Merci pour votre aide

2 réponses


le mail n'est dans aucune base de donnée ;) Tu as plusieurs bases de données ?
Tu n'explique en rien ce que tu souhaite obtenir et ce que le code fait actuellement, on risque pas de t'aider.

Hello,

Tu a essayé d'autoriser tes params?

 @contact = Contact.new params.require(:contact).permit(:a,:b,:c,:d)

Cordialement,
TD