Ruby метапрограммирование альтернатива eval

У меня есть следующее утверждение, которое работает, хотя и использует eval:

  def resource_name
    self.class.to_s.match(/(.+)Controller/)[1].singularize
  end

  def collection
    @collection ||= eval "#{resource_name}.all(sort: [[:name, :asc]])"
  end

Есть ли лучший способ сделать это, не используя eval?

0
задан dagda1 28 July 2012 в 13:31
поделиться