如果已经回答,请原谅我。我花了几个小时在这里和谷歌上搜索这个答案。
我刚刚开始使用Ruby on Rails。在将最初通过表单提交的数据保存到两个不同的模型之后,我尝试使用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创建的字符记录。最有效的方法是什么,以便在表单提交后,它会使用从API返回的数据更新记录(或在保存记录之前添加数据)。
我不需要提供有关特定字段和返回数据的帮助。我已经完成了所有工作,我只是在寻找一种方法来提出API请求并在表单提交后立即完成所有数据的记录。
答案 0 :(得分:0)
建议使用回调(:after_create)。
根据API处理,您可以在它们之间进行选择。 :after_save的 :before_save :before_create
任何回调只需从您的API获取数据并填写其他字符信息。
希望有所帮助。祝你好运。