Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中从非持久化对象到持久化对象获取属性_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 如何在rails中从非持久化对象到持久化对象获取属性

Ruby on rails 如何在rails中从非持久化对象到持久化对象获取属性,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个应用程序,它使用一个Web服务,加载一个未在数据库中持久化的对象(我通过JSON获取并将其转换为ruby对象)。如何将此对象的属性发送到创建窗体。将创建一个通过webservice接收的引用此对象的新对象 我想单击一个按钮“addnew”take it attributes,并将这些属性添加到要在数据库中持久化的新对象的属性中 我该怎么做 非常感谢。当您从api接收到JSON属性并将其解析为Ruby哈希后,您可以将其放入模型中。新建。例如,您可以在发出API请求的第一页的控制器操作中执行

我有一个应用程序,它使用一个Web服务,加载一个未在数据库中持久化的对象(我通过JSON获取并将其转换为ruby对象)。如何将此对象的属性发送到创建窗体。将创建一个通过webservice接收的引用此对象的新对象

我想单击一个按钮“addnew”take it attributes,并将这些属性添加到要在数据库中持久化的新对象的属性中

我该怎么做


非常感谢。

当您从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
操作,而无需对其进行任何修改。您还将免费获得所有验证、强参数等