Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 与阿雷尔的联盟不起作用_Ruby On Rails_Ruby On Rails 4_Arel - Fatal编程技术网

Ruby on rails 与阿雷尔的联盟不起作用

Ruby on rails 与阿雷尔的联盟不起作用,ruby-on-rails,ruby-on-rails-4,arel,Ruby On Rails,Ruby On Rails 4,Arel,在我们的系统中,用户可以有许多订单,但在某个时间点只有一个订单处于活动状态。此活动订单有一个名为已付保费的字段。如果现在之后设置了已支付的保险费,则他是保险费,否则,订单过期,他是免费的。如果他没有秩序,他也将自由 我想选择免费用户,但我不能这样做。代码如下: @users_table = BTR::User.arel_table @users = users_table.select_manager @users.join(orders_table).on(users_table[:id].e

在我们的系统中,用户可以有许多订单,但在某个时间点只有一个订单处于活动状态。此活动订单有一个名为已付保费的字段。如果现在之后设置了已支付的保险费,则他是保险费,否则,订单过期,他是免费的。如果他没有秩序,他也将自由

我想选择免费用户,但我不能这样做。代码如下:

@users_table = BTR::User.arel_table
@users = users_table.select_manager
@users.join(orders_table).on(users_table[:id].eq(orders_table[:user_id]))
      .where(orders_table[:paid_premium_until].lt(Time.now).or(orders_table[:intermediate_premium_until].lt(Time.now)))
      .union(:all, BTR::User.joins(:orders).where('btr_order.user_id IS NULL'))
我也试过:

users_without_orders = BTR::User.arel_table
free_users = users_without_orders.join(orders_table).on(users_table[:id].eq(orders_table[:user_id]))
                                 .where(orders_table[:user_id].eq(nil))
.union(:all,free\u用户)
但是我得到了与上面相同的错误:


未定义的方法,其中'for#(NoMethodError)

试着先写
where
子句?先写在哪里?你是什么意思?
没有订单的用户。where(..).join…
我也遇到同样的错误