Как мне удалить ведущие пробельные символы из Ruby HEREDOC? - PullRequest
81 голосов
/ 22 сентября 2010

У меня проблема с наследственным рубином, который я пытаюсь сделать.Он возвращает начальные пробелы из каждой строки, хотя я включаю оператор -, который должен подавлять все начальные пробельные символы.мой метод выглядит следующим образом:

    def distinct_count
    <<-EOF
        \tSELECT
        \t CAST('#{name}' AS VARCHAR(30)) as COLUMN_NAME
        \t,COUNT(DISTINCT #{name}) AS DISTINCT_COUNT
        \tFROM #{table.call}
    EOF
end

и мой вывод выглядит следующим образом:

    => "            \tSELECT\n            \t CAST('SRC_ACCT_NUM' AS VARCHAR(30)) as
COLUMN_NAME\n            \t,COUNT(DISTINCT SRC_ACCT_NUM) AS DISTINCT_COUNT\n
        \tFROM UD461.MGMT_REPORT_HNB\n"

это, конечно, правильно в данном конкретном случае, за исключением всех пробелов междупервый "и \ т. кто-нибудь знает, что я здесь не так делаю?

Ответы [ 11 ]

0 голосов
/ 02 марта 2017

Я собираю ответы и получаю это:

class Match < ActiveRecord::Base
  has_one :invitation
  scope :upcoming, -> do
    joins(:invitation)
    .where(<<-SQL_QUERY.strip_heredoc, Date.current, Date.current).order('invitations.date ASC')
      CASE WHEN invitations.autogenerated_for_round IS NULL THEN invitations.date >= ?
      ELSE (invitations.round_end_time >= ? AND match_plays.winner_id IS NULL) END
    SQL_QUERY
  end
end

Он генерирует превосходный SQL и не выходит за рамки AR.

...