У меня есть этот блок кода: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
, я получаю эту ошибку
TypeError в ControllerName # search_for_users
неправильный тип аргумента Hash (ожидаемые данные)
и линия ссылки является строка с вызовом .to_json.
Это меня озадачивает, потому что код дословно то же самое. Единственное различие заключается в том, что когда я запускаю его в консоли, я вхожу в условия вручную, но в моем методе я вытягиваю запрос из params[:query]
. Но я просто пытался жестко кодировать запросы и получил тот же результат, поэтому я не думаю, что это проблема. Если я удалю :include
, я не вижу ошибки, но я также не получаю нужные данные.
Кто-нибудь может понять, в чем проблема?
Случается ли проблема, когда пользователи содержат только один пользователь, извлекались постоянными ID, а не User.find? – pts
Нет, если я нахожу (some_id) .to_json: include => [: license] 'Я не имею никаких лицензий. Думаю, это указывает на проблему с 'Enumerable # to_json'? – jxpx777