失敗我有這個代碼塊:AR.to_json工程在控制檯中,在瀏覽器中
users = Array.new
users << User.find(:all, :conditions => ["email like ?", "%foo%"])
users << User.find(:all, :conditions => ["name like ?", "%bar%"])
users.flatten!
users.uniq!
puts users.to_json :include => [:licenses]
當我運行使用腳本/控制檯,它返回正是你會認爲它應該的JSON表示我找到的用戶數組,扁平化和獨特。但是運行同一行代碼爲search_for_users
方法的一部分,我得到這個錯誤
類型錯誤在ControllerName#search_for_users
錯誤的參數類型哈希(預期數據)
,並參考了線帶.to_json調用的行。
這讓我感到莫名其妙,因爲代碼是完全一樣的。唯一的區別是,當我在控制檯中運行它時,我手動輸入了條件,但在我的方法中,我從params[:query]
提取查詢。但是,我只是試圖對查詢進行硬編碼並得到相同的結果,所以我不認爲這是問題。如果我刪除了:include
,我看不到錯誤,但我也沒有收到我想要的數據。
任何人都知道這個問題可能是什麼?
當用戶只包含一個用戶,通過恆定的ID,而不是User.find獲取該問題是否發生? – pts 2009-05-03 15:45:47
不,如果我做`find(some_id).to_json:include => [:licenses]`我得到的許可證沒有問題。那麼我猜這就指向了Enumerable#to_json這個問題了? – jxpx777 2009-05-03 16:27:16