Ruby on rails 3 提交使用嵌套属性的表单后,使用API的响应更新模型

Ruby on rails 3 提交使用嵌套属性的表单后,使用API的响应更新模型,ruby-on-rails-3,rails-models,Ruby On Rails 3,Rails Models,如果已经回答了,请原谅我。我花了几个小时在这里和谷歌上搜索答案 我刚刚开始使用RubyonRails。在将最初通过表单提交的数据保存到两个不同的模型之后,我尝试使用API响应中的数据更新模型 所以基本上我有一个用户模型和一个角色模型。注册表单收集有关用户及其角色的数据。为了发出API请求,我必须至少获得一些有关角色的详细信息,作为请求属性的一部分传入(即名称、领域) 因此,我使用表单_来表示嵌套属性: <%= form_for(@user) do |f| %> <%

如果已经回答了,请原谅我。我花了几个小时在这里和谷歌上搜索答案

我刚刚开始使用RubyonRails。在将最初通过表单提交的数据保存到两个不同的模型之后,我尝试使用API响应中的数据更新模型

所以基本上我有一个用户模型和一个角色模型。注册表单收集有关用户及其角色的数据。为了发出API请求,我必须至少获得一些有关角色的详细信息,作为请求属性的一部分传入(即名称、领域)

因此,我使用表单_来表示嵌套属性:

<%= 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 %>

这将成功提交提交给用户模型的所有用户信息以及提交给角色模型的域和名称。没问题。但是,我还有几个字段需要填充,用于刚从提供所有字符信息的API创建的字符记录。最有效的方法是什么,以便表单提交后,使用API返回的数据更新记录(或在保存记录之前添加数据)

我不需要关于特定字段和返回数据的帮助。我已经完成了所有工作,我只是在寻找一种方法,在表单提交后立即发出API请求并用所有数据完成记录。

建议使用回调(:after_create)

根据API处理,您可以在它们之间进行选择。 :保存后 :保存前 :创建前

使用任何回调,只需从API获取数据并填充其他字符信息


希望有帮助。祝你好运。

好的,我试试(:在保存之前)。我是否在父模型中实现了这一点?还有,如何访问要在回调函数中使用的嵌套表单数据?是的,您可以在父模型中实现这一点,并使用rails的关联功能创建子模型。看一看简介:谢谢Vik!我能够通过回调(保存后)使用.last方法更新记录来解决所有问题。你给我的链接也提供了很多信息。这正是我一直在寻找的。