有关多个where子句的查询的问题,Rails 3

Jho*_*rra 0 ruby-on-rails ruby-on-rails-3

我有一个名为Gym的课程

class Gym < ActiveRecord::Base
  has_many :gym_users
  has_many :users, :through => :gym_users

  validates :name, :address1, :city, :state, :zip, :phone, :website, :presence => true

  def has_admin_access?(user)
    user.present? && gym_users.where(:user_id => user.id, :gym_role_id => 3)
  end
end
Run Code Online (Sandbox Code Playgroud)

我想修改has_admin_access方法以查找3或4的gym_role_id.另一个问题是我如何做小于或大于?

某处有在线备忘单吗?

Aja*_*nda 5

试试这个

user.present? && gym_users.where(:user_id => user.id, :gym_role_id => [3, 4])
Run Code Online (Sandbox Code Playgroud)

尝试使用MetaWhere gem来创建比符号更少和更好的查询.教程可在http://railscasts.com/episodes/251-metawhere-metasearch获得

从Rails 3.1开始,不支持MetaWhere.更新的替代品是Squeel.