Ruby:比较运算符作为字符串

时间:2013-09-18 20:47:35

标签: ruby operators

我正在开发一个Rails应用程序,允许用户在完成任务时检查任务,并且我正在研究一种方法,该方法将返回到期任务和即将完成的任务。

以下是我的用户模型中的方法:

  def task_notification(notification_type = "past")
    return false if tasks.empty?

    current_month = Time.now.month
    tasks.where(classification: classification).select { |task| task.due_date < current_month }
  end

我基本上是想做这样的事情:

operator = notification_type.eql?("past") ? "<" : ">"
tasks.where(classification: classification).select { |task| task.due_date operator current_month }

显然上面的内容不起作用,我只是想知道如何让它发挥作用。

1 个答案:

答案 0 :(得分:3)

使用Object#send

task.due_date.send(operator, current_month)