Ruby on rails 如何在rails中从非持久化对象到持久化对象获取属性
我有一个应用程序,它使用一个Web服务,加载一个未在数据库中持久化的对象(我通过JSON获取并将其转换为ruby对象)。如何将此对象的属性发送到创建窗体。将创建一个通过webservice接收的引用此对象的新对象 我想单击一个按钮“addnew”take it attributes,并将这些属性添加到要在数据库中持久化的新对象的属性中 我该怎么做Ruby on rails 如何在rails中从非持久化对象到持久化对象获取属性,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个应用程序,它使用一个Web服务,加载一个未在数据库中持久化的对象(我通过JSON获取并将其转换为ruby对象)。如何将此对象的属性发送到创建窗体。将创建一个通过webservice接收的引用此对象的新对象 我想单击一个按钮“addnew”take it attributes,并将这些属性添加到要在数据库中持久化的新对象的属性中 我该怎么做 非常感谢。当您从api接收到JSON属性并将其解析为Ruby哈希后,您可以将其放入模型中。新建。例如,您可以在发出API请求的第一页的控制器操作中执行
非常感谢。当您从api接收到JSON属性并将其解析为Ruby哈希后,您可以将其放入
模型中。新建
。例如,您可以在发出API请求的第一页的控制器操作中执行以下操作:
attrs = JSON.parse(api_response_body)
#=> {"title" => "foobar"}
@article = Article.new(attrs)
#=> #<Article title: "foobar">
attrs=JSON.parse(api\u response\u body)
#=>{“标题”=>“foobar”}
@article=article.new(属性)
#=> #
我知道您希望在一个请求中获得API响应,然后使用在下一个请求中获得的值将值实际持久化到数据库中。因此,您需要跟踪请求之间的值。实现此目的的一种简单方法是在第一页使用带有隐藏字段的表单:
<%= form_for @article do %>
<%= f.hidden_field :title %>
<!-- more hidden fields here... -->
<%= f.submit 'New Article from API Result' %>
<% end %>
然后,您只需像往常一样重复使用资源的#create
操作,而无需对其进行任何修改。您还将免费获得所有验证、强参数等