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

时间:2010-09-07 22:14:28

标签: ruby-on-rails model has-many

当我尝试访问has_many关系的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):

1 个答案:

答案 0 :(得分:3)

这一行:

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

应阅读:

conditions = { :start_time => params[:start]..params[:end], :submitted => true }

您正在创建一个包含散列的数组,而不是单个散列。

相关问题