Help us understand the problem. What is going on with this article?

Rails5で複数テーブルを更新する際にform_withでハマったエラーの対策

状況

field_forで複数テーブルに一度に保存したいけど、Unpermitted parameterとなってしまいました。

fields_forで、一度に複数のテーブルに保存したいと考えていました。フォーム内の各入力項目はブラウザ上で確認できる状態で、ページ遷移時にエラーも起こらないのですが子のテーブルにデータが保存されない状態でした。

inquiry.rb
<%= form_with scope: :inquiry, local: true do |f| %>

  <div class="field">
    <%= f.label :full_name, "名前(必須)" %>
    <%= f.text_field :full_name %>
  </div>

  <div class="field">
    <%= f.label :mail_address, "メールアドレス(必須)" %>
    <%= f.text_field :mail_address %>
  </div>

  <%= f.fields_for :inquiry_message do |mes| %>

    <div class="field">
      <%= mes.label :message, "お問い合わせ内容(必須)" %>
      <%= mes.text_area :message %>
    </div>

  <% end %>

  <div class="actions">
    <%= f.submit "確認画面へ" %>
  </div>

<% end %>

やったこと

<%= form_with scope: :inquiry, local: true do |f| %>

を下記に変更!

<%= form_with model: @inquiry, url: inquiry_path, local: true do |f| %>

理由はわからないのですが、これでエラーから抜け出せました。
もし理由がわかる方がいらっしゃいましたら、ぜひ教えてください。

自分の理解だと、scopeの場合でもmodelの場合でも、同じフォームが作成されるはずだったのですが不思議です。

もし同じようなエラーでハマった方がいらっしゃたら一度試してみてください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした