Ruby on rails 3 用于更新外部API的form_标签或form_?轨道3.2

Ruby on rails 3 用于更新外部API的form_标签或form_?轨道3.2,ruby-on-rails-3,shopify,Ruby On Rails 3,Shopify,当连接到外部json api并提交表单以更新资源时,使用form_for或form_标记是否更好 具体来说,我使用的是ShopifAPI 在config/routes.rb中,我使用resources:variants创建了默认的资源路由,现在我试图创建一个表单来更新一个variant资源,但无法将表单配置为具有正确的操作 ==更新==== 是的,这里有一个ShopifAPI gem:它完成了大部分繁重的工作——只是不太明白如何让它工作 要更新@variant对象,我需要放在这里:PUT/adm

当连接到外部json api并提交表单以更新资源时,使用form_for或form_标记是否更好

具体来说,我使用的是ShopifAPI

在config/routes.rb中,我使用resources:variants创建了默认的资源路由,现在我试图创建一个表单来更新一个variant资源,但无法将表单配置为具有正确的操作

==更新====

是的,这里有一个ShopifAPI gem:它完成了大部分繁重的工作——只是不太明白如何让它工作

要更新@variant对象,我需要放在这里:
PUT/admin/variants/#{id}.json

但是我不能很好地构造form_标签。我有以下路线:

rake routes:

variants     GET    /variants(.:format)           variants#index
             POST   /variants(.:format)           variants#create
new_variant  GET    /variants/new(.:format)       variants#new
edit_variant GET    /variants/:id/edit(.:format)  variants#edit
variant      GET    /variants/:id(.:format)       variants#show
             PUT    /variants/:id(.:format)       variants#update
             DELETE /variants/:id(.:format)       variants#destroy

你的应用程序定义了模型吗?如果是这样,您应该能够为使用表单。如果没有,则必须使用表单标签

form_for将模型实例作为参数(因此得名)。表单字段的输出更加简洁,因为form\u for可以从模型中推断出很多信息。您还可以使用
字段\u执行嵌套表单


如果您使用form_标记,那么您需要编写更多代码来正确构造HTTP参数,以便Rails可以在服务器上重建params散列。

我认为我需要使用form_标记,因为我没有使用模型实例。我直接从Shopify API在控制器中创建实例,例如:
@products=ShopifyAPI::Product.find(:all,:params=>{:published_status=>'published'})
我一直在尝试将此实例移动到模型中,因为我认为这会使我的更新更方便,但我不确定这是否可能。我从未使用过Shopify API。我确实使用ActiveMerchant宝石。我们创建了一个从ActiveMerchant::Billing::CreditCard派生的瞬态模型类,因此它具有所有ActiveRecord和helper工具。Shopify api有配套的宝石吗?我喜欢一个丰富的模型和光视图层。也许我把问题弄糊涂了。不管怎么说,表单标签有点乏味,但是如果你的表单非常简单,而且是RESTful的,那也没关系。谢谢你,我在上面放了一些更多的信息。我会投票支持你的答案,但我没有足够的声誉:/I我是n00b