Ruby on rails Rails控制器-时间、条件和地理编码器Gem
我正在努力合并这两种说法。我正在开发一个事件应用程序。我想阻止我的用户自己发布事件。为了做到这一点,我在我的表中有一个名为“State”的字段,我也在使用geocoder gemRuby on rails Rails控制器-时间、条件和地理编码器Gem,ruby-on-rails,controller,ruby-on-rails-3.1,Ruby On Rails,Controller,Ruby On Rails 3.1,我正在努力合并这两种说法。我正在开发一个事件应用程序。我想阻止我的用户自己发布事件。为了做到这一点,我在我的表中有一个名为“State”的字段,我也在使用geocoder gem def index if params[:search].present? @events = Event.near(params[:search], 50, :order => :distance).where(:state => ['3', '4']) else @events =
def index
if params[:search].present?
@events = Event.near(params[:search], 50, :order => :distance).where(:state => ['3', '4'])
else
@events = Event.where('until > ?', Time.zone.now)
end
end
我想这样做
def index
if params[:search].present?
@events = Event.near(params[:search], 50, :order => :distance).where(:state => ['3', '4'])
else
@events = Event.where('until > ?', Time.zone.now, :state => ['3', '4'])
end
end
但我犯了个错误
ActiveRecord::PreparedStatementInvalid in EventsController#index
wrong number of bind variables (2 for 1) in: until > ?
您能帮个忙吗?…您只有一个占位符“?”,但您提供了两个参数。你可以做:
@events = Event.where('until > :time and state in :state', {:time => Time.zone.now, :state => ['3', '4']})
或
或
您只有一个占位符“?”,但提供了两个参数。你可以做:
@events = Event.where('until > :time and state in :state', {:time => Time.zone.now, :state => ['3', '4']})
或
或
非常感谢,我用的是第二个。很好。祝你度过愉快的一天。非常感谢,我正在使用第二个。很好。祝你有美好的一天。
@events = Event.where(:until.gt => Time.zone.now, :state => ['3', '4'])