Rails и параметры белого списка при использовании form_with без модели, - PullRequest
0 голосов
/ 11 января 2020

Вот мое стуалирование, rails 6, я пытаюсь использовать Mail Controller для страницы «свяжитесь с нами», и это очень удобно, маршрут, контроль и вызов контроллера почтовой программы, все работает, я получаю электронную почту, кроме получения параметров из вид на почтовик и когда белый список параметров, здесь "имя" я получаю ошибку для токена.

#route
  get "/contact-us", to: 'home#contact', as: 'home_contact' 
  post "/contact-us", to: 'home#contact_send_email', as: 'home_contact_send_email' 
##############################
#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
...
#################################
# 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"%>
...

##################################
console puts this error :
Unpermitted parameters: :authenticity_token
  • Я пытался использовать: params.require (: home) .permit (: имя), но я получил параметры для дома пустые.

Мой вопрос, возможно ли без создания модели внести в белый список параметры при использовании form_with url, как я могу сделай это ? если нет, то есть ли лучший способ?

1 Ответ

0 голосов
/ 11 января 2020

Я не вижу ничего плохого в сообщении (это не ошибка).

Я полагаю, ваши параметры ha sh выглядят примерно так:

{
  name: 'some_name',
  controller: 'home',
  action: 'contact_send_mail',
  authenticity_token: '............'
}

Итак, ваши contact_params отправляет объект типа "ха sh" с разрешением name и разрешением authenticity_token. Сообщение, которое вы видите, имеет смысл, поскольку вы передаете га sh с недопустимым ключом.

Я имею в виду, что ошибки нет, вы говорите, что она работает, а сообщение, которое вы видите, означает, что сильные параметры действительно работают как задумано (вы передаете больше ключей, чем ожидаемые, и это говорит вам об этом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...