¿Comprobar si una variable de instancia tiene uno o más objetos?

Este es un código de ejemplo, solo para ilustrar el problema.

Cuando hago clic en uno de los botones, cargaré alguna variable de instancia en la vista y la renderizaré. No sé si la variable tendrá uno o más objetos dentro. Por lo tanto, tengo que verificar si la variable tiene uno o más objetos dentro, cuando está cargada en la vista (de lo contrario, el método .each fallará si solo hay un objeto dentro). ¿O hay una manera de almacenar solo un objeto dentro de la variable como una matriz?

aa.html.erb

'animals', :action => 'vaa', :id => "0" } , remote: true %> 'animals', :action => 'vaa', :id => "1" } , remote: true %> 'animals', :action => 'vaa', :id => "2" } , remote: true %>

_vaa.html.erb

 

animales_controller.rb

 def vaa if params[:id] == "0" @animals = Animal.all elsif params[:id] == "1" @animals = Animal.first elsif params[:id] == "2" @animals.second end respond_to do |format| format.js end end 

Puede devolver @animals como matriz si @animals que está recuperando no es una matriz como la siguiente:

  def vaa if params[:id] == "0" @animals = Animal.all elsif params[:id] == "1" @animals = Animal.first elsif params[:id] == "2" @animals.second end # The following line makes sure @animals is Array if @animals is not an array. @animals = [@animals] unless @animals.kind_of?(Array) respond_to do |format| format.js end end