活动资源发现在生产中不起作用

问题描述 投票:0回答:3

标题说,我的应用程序中有一个简单的ActiverEsource,应该从API中获取数据。该系列在本地和生产服务器上都可以正常运行。但是,.find在生产中不起作用,我会发现一个奇怪的错误:

MyResource.find(1, params: { website_id: 2 })
ArgumentError: wrong number of arguments (given 2, expected 0..1)

如果我从连接到API的本地控制台运行,则相同的查询可以正常工作。 API返回有效的响应。我不知道该如何调试。

class MyResource < ActiveResource::Base self.site = Rails.configuration.content_url self.prefix = "/api/websites/:website_id/" self.element_name = "game" end
我必须说,我在应用程序中使用相同的API还有其他资源,找到适合他们的方法,只有这个问题有问题。
由于某种原因,它会打电话给

https://github.com/rails/rails/blob/master/activerecord/lib/active_record/core.rb#l330 有2个参数,但我不知道是谁打电话的。而且它仅在生产模式下发生,而不是在Dev.中发生。

ruby-on-rails api ruby-on-rails-5
3个回答
0
投票

I在一个应用程序中遇到了类似的问题,该应用程序将ActivereCord用于供应商模型,并为具有供应商属性的交付模型而言。在开发中,如果尚未加载供应商模型,则可以获取交付并进行启用,包括供应商属性。但是,如果已经加载了供应商模型,则尝试获取交货会导致本期所述的错误。

0
投票

Vendor.connection Delivery.find(1)

Aresource试图创建供应商的新实例的样本。

我知道这是一个古老的问题,但我敢肯定我知道这里发生了什么。当对基于ActiverEsource的对象进行应对和重新创建接收端时,它使用一件代码:

resource.new(attributes, persisted)


0
投票
在挑选时间时,上述代码不仅在主要的ActiverEsource对象上调用,而且在其中序列化的任何集合中都调用,因此它们也必须是ActiverEsesources。一旦我以这种方式序列化,代码就可以完美地工作。我在接收端获得了主要对象和集合。


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.