これが答えられていたら、私を許してください。こことGoogleの両方で、これに対する答えを探すのに数時間を費やしました.
Ruby on Rails を始めたばかりです。フォームから最初に送信されたデータを 2 つの異なるモデルに保存した後、API 応答からのデータでモデルを更新しようとしています。
つまり、基本的に User モデルと Character モデルがあります。サインアップ フォームは、ユーザーとそのキャラクターに関するデータを収集します。API リクエストを行うには、リクエストされた属性 (つまり、名前、レルム) の一部として渡す文字について、少なくともいくつかの詳細を取得する必要があります。
だから私はネストされた属性を持つ form_for を使用しています:
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages' %>
<%= f.label :username %>
<%= f.text_field :username %>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<%= f.label :last_name %>
<%= f.text_field :last_name %>
<%= f.label :email %>
<%= f.text_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation, "Password Confirmation" %>
<%= f.password_field :password_confirmation %>
<%= f.fields_for :characters do |builder| %>
<%= builder.label :realm %>
<%= builder.text_field :realm %>
<%= builder.label :name %>
<%= builder.text_field :name %>
<% end %>
<%= f.submit "Sign Up" %>
<% end %>
これにより、User モデルに送信されたすべてのユーザー情報と、Character モデルに送信されたレルムと名前が正常に送信されます。問題ありません。ただし、すべての文字情報を提供する API から作成したばかりの Character レコードに入力するフィールドがいくつかあります。これを行う最も効率的な方法は、フォームが送信された後、API から返されたデータでレコードを更新する (またはレコードを保存する前にデータを追加する) ことです。
返された特定のフィールドとデータについてのヘルプは必要ありません。フォームが送信された直後に API リクエストを作成し、すべてのデータでレコードを完成させる方法を探しています。