标题说,我的应用程序中有一个简单的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.中发生。
I在一个应用程序中遇到了类似的问题,该应用程序将ActivereCord用于供应商模型,并为具有供应商属性的交付模型而言。在开发中,如果尚未加载供应商模型,则可以获取交付并进行启用,包括供应商属性。但是,如果已经加载了供应商模型,则尝试获取交货会导致本期所述的错误。
Vendor.connection
Delivery.find(1)
我知道这是一个古老的问题,但我敢肯定我知道这里发生了什么。当对基于ActiverEsource的对象进行应对和重新创建接收端时,它使用一件代码:
resource.new(attributes, persisted)