2016-12-20 6 views
-4

Я работаю над Rails. В моей базе кода, я вижу линию, используя Arel::SqlLiteral так:Рубин: << - оператор

result = Arel::Nodes::SqlLiteral.new(<<-SQL 
    CASE WHEN condition1 THEN calculation1 
    WHEN condition2 THEN calculation2 
    WHEN condition3 THEN calculation3 
    ELSE default_calculation END 
SQL) 

Я понимаю, что этот кусок кода делать. То, что я не понимаю его грамматика, в данный момент:

Arel::Nodes::SqlLiteral.new(<<-SQL 
    ... 
    SQL 
) 

Так рубин, что грамматика <<- следует по имени, а затем в последнем блоке мы называем этим именем.

благодаря

+0

Я действительно не понимаю, почему после разметки дубликатов я все равно получаю голосую: D совершенно вздор: DI думаю, что эти люди пускают меня в голову, не имеют счастливой жизни ^^ –

+0

Кроме того, могут ли они google '<< - 'оператор означает: DI попытался безрезультатно. Надеюсь, они должны подумать дважды перед некоторыми действиями: D уважайте окружающих людей ^^ немного вниз голосов ничего не меняют, кроме них. Они станут все более и более ненавистью. –

ответ

1

Ключевое слово вы ищете является "Heredoc".

https://ruby-doc.org/core-2.2.0/doc/syntax/literals_rdoc.html#label-Here+Documents

Он используется в основном для приукрашивает большие тексты и обычную практику для оболочек/shellscripts. Маркер сверху указывает начало heredoc и маркер внизу (который не должен иметь отступ, если вы не помещаете «-» перед маркером открытия) указывает конец.

+0

спасибо. действительно не знаю, почему кто-то проголосовал за ваш ответ: D это помогает мне. И, по крайней мере, не делайте что-то нехорошее. –