Я пришел к выводу, что ActiveRecord автоматически вызывает to_i для своего аргумента, но был бы признателен, если бы кто-нибудь смог подтвердить, особенно через ссылку на некоторую документацию.
То, как я пришел к выводу, лучше всего иллюстрируется следующим примером кода:
dest_task = WorkEffort.find(params[:task_dest_id])
params[:task_src_ids].split.each do |src_id|
WorkEffort.find(src_id).move_to_child_of dest_task
end
Когда я запускал вышеупомянутое, только запись, связанная с первым src_id, была обработана, хотя я знал, что параметр task_src_ids содержал что-то вроде "78,79". Обдумывая это, find должен вызвать to_i в этой строке, которая будет игнорировать все после первой нецифровой цифры и вернуть 78.
Если find не вызывал to_i, должна была возникнуть ошибка, и мне пришлось бы явно вызывать to_i. Я, конечно, исправил код, вызвав «split (',')», и теперь он обрабатывает несколько task_src_ids вместо того, который стоит перед первой запятой.
Я знаю, что вроде как ответил на это сам, но как новичок в Ruby / Rails я ищу подтверждение и ссылку на соответствующую документацию, плюс я подумал, что это может помочь другим в будущем. Заранее спасибо