Ruby on rails 缺少方法';%';在Rails中使用has_many和find()

Ruby on rails 缺少方法';%';在Rails中使用has_many和find(),ruby-on-rails,model,has-many,Ruby On Rails,Model,Has Many,当我试图访问has\u many relationship的find方法时,我遇到了一个非常奇怪的错误 我在语法上做错了什么 # Instructor model class Instructor < ActiveRecord::Base has_many :events end # Event model class Event < ActiveRecord::Base belongs_to :instructor end # Controller snip-it i

当我试图访问has\u many relationship的find方法时,我遇到了一个非常奇怪的错误

我在语法上做错了什么

# Instructor model
class Instructor < ActiveRecord::Base
  has_many :events
end

# Event model
class Event < ActiveRecord::Base
  belongs_to :instructor
end

# Controller snip-it
i = Instructor.first
conditions = [ :start_time => params[:start]..params[:end], :submitted => true ]
@events = i.events.find(:all, :conditions => conditions)

# Error message
# NoMethodError (undefined method `%' for {:start_time=>"1283140800".."1286769600", :submitted=>true}:Hash):
#讲师模型
课堂讲师params[:开始]…params[:结束],:提交=>true]
@events=i.events.find(:all,:conditions=>conditions)
#错误消息
#NoMethodError(未定义的方法“%”,用于{:start_time=>“1283140800”。“1286769600”,:submitted=>true}:Hash):
此行:

conditions = [ :start_time => params[:start]..params[:end], :submitted => true ]
应改为:

conditions = { :start_time => params[:start]..params[:end], :submitted => true }
您正在创建一个数组,其中包含一个散列,而不是一个散列。

此行:

conditions = [ :start_time => params[:start]..params[:end], :submitted => true ]
应改为:

conditions = { :start_time => params[:start]..params[:end], :submitted => true }
您正在创建一个数组,其中包含一个散列,而不是一个散列