I’m trying to implement a Mail Controller for my “Contact Us” page in Rails 6. I have the route, controller, and call to the mailer controller set up. I’m able to receive the email, but I’m having trouble getting the params from the view to the mailer. I’m getting an error for the token when I try to whitelist the param.
#route
get "/contact-us", to: 'home#contact', as: 'home_contact'
post "/contact-us", to: 'home#contact_send_email', as: 'home_contact_send_email'
My controller code is as follows:
#controller page
...
def contact
end
def contact_send_email # POST Method
UserMailer.with(contact_params).contact_email.deliver_later
redirect_to( home_contact_path)
end
private
def contact_params
params.permit(:name)
end
...
The relevant part of my view is as follows:
# view # home >contact.html.erb
...
<%= form_with( url: home_contact_send_email_path, method: "post") do |form| %>
<%= form.label :name, class:"label" %>
<%= form.text_field :name, class:" field input is-medium"%>
...
I’m getting the error Unpermitted parameters: :authenticity_token
when I run my code. I tried using params.require(:home).permit(:name)
but I got the error parameters for home are empty
.
My question is: is it possible to whitelist parameters when using form_with url
without creating a model? If not, is there a better way?