Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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 使用变量find条件的Rails_Ruby On Rails_Find_Conditional Statements_Braintree - Fatal编程技术网

Ruby on rails 使用变量find条件的Rails

Ruby on rails 使用变量find条件的Rails,ruby-on-rails,find,conditional-statements,braintree,Ruby On Rails,Find,Conditional Statements,Braintree,我正在使用Braintree管理Rails应用程序中的订阅 我有一个存储braintree客户ID和订阅ID的订阅模型 我想筛选订阅模型中的活动订阅。到目前为止我有 def find_active_subscriptions @active_subscriptions = Braintree::Subscription.search do |search| search.status.is "Active" end 但是现在我想使用@active\u subscriptions中的订阅ID

我正在使用Braintree管理Rails应用程序中的订阅

我有一个存储braintree客户ID和订阅ID的订阅模型

我想筛选订阅模型中的活动订阅。到目前为止我有

def find_active_subscriptions
@active_subscriptions = Braintree::Subscription.search do |search|
  search.status.is "Active"
end
但是现在我想使用@active\u subscriptions中的订阅ID来查找本地订阅模型中具有相同订阅ID的所有对象,并将其放入一个变量中,例如@local\u active\u subscriptions

我必须这样做的原因是使用本地信息访问Braintree::Address,并且只提取活动地址


谢谢你的帮助

如果您有
@active\u订阅
,您可以将所有ID收集到一个数组中,并将它们直接传递到本地订阅模型的
find
方法中。我不知道您在这里使用的是什么属性,所以我只是做一些猜测:

@active_subscription_ids = @active_subscriptions.collect(&:subscription_id)
@local_active_subscriptions = LocalSubscriptionModel.find(@active_subscription_ids)

我不确定Braintree::Subscription.search返回的是什么,但如果是类似于ActiveRecords的内容,您是否可以使用以下内容:

@local_active_subscriptions = Subscription.where("id IN(?)", @active_subscriptions.map{ |act_subs| act_subs.id })
.map函数应将所有ID放入一个数组中,然后ActiveRecord查询将查找订阅表中ID位于该数组中的所有订阅。 我对Braintree::Subscriptions上的映射没有把握;我从来没用过

编辑

正如ctcherry所说,您也可以使用find进行搜索。我猜collect也很适合将ID映射到数组中。您也可以使用
@active\u subscriptions.map(&:id)