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…
我也遇到同样的错误