0
我有一个应用程序,消耗Web服务,加载一个对象没有持久化在数据库中(我通过JSON获得并将其变成红宝石对象)。如何将此对象的属性发送到创建表单。通过webservice接收到的一个新对象参照这个对象进行创建。我怎样才能从非持久对象的属性从未持久对象在轨道上
我想点击一个按钮“添加新的”取其属性,并将这些属性添加到要保留在数据库中的新对象的属性。
我该怎么做?
感谢。
我有一个应用程序,消耗Web服务,加载一个对象没有持久化在数据库中(我通过JSON获得并将其变成红宝石对象)。如何将此对象的属性发送到创建表单。通过webservice接收到的一个新对象参照这个对象进行创建。我怎样才能从非持久对象的属性从未持久对象在轨道上
我想点击一个按钮“添加新的”取其属性,并将这些属性添加到要保留在数据库中的新对象的属性。
我该怎么做?
感谢。
将api的属性作为JSON接收并解析为红宝石哈希后,您可以将其丢入Model.new
。
attrs = JSON.parse(api_response_body)
#=> {"title" => "foobar"}
@article = Article.new(attrs)
#=> #<Article title: "foobar">
我明白你想在一个请求的API响应,然后用在未来获得的值:例如,你可以在第一页,其中API提出请求的控制器动作做请求实际持久化值到数据库。因此,您需要跟踪请求之间的值。一个简单的方法来acheive将被使用形式与第一页上隐藏字段:
<%= form_for @article do %>
<%= f.hidden_field :title %>
<!-- more hidden fields here... -->
<%= f.submit 'New Article from API Result' %>
<% end %>
然后,你可以简单地重新使用你的资源#create
动作正常未做任何修改。您还可以免费获得所有的验证,强大的参数等。