代码示例:
create_data_with(
first: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
second: <<~TEXT
Aenean vel ex bibendum, egestas tortor sit amet, tempus lorem. Ut sit
amet rhoncus eros. Vestibulum ante ipsum primis in faucibus orci
luctus et ultrices posuere cubilia curae; Quisque non risus vel lacus
tristique laoreet. Curabitur quis auctor mauris, nec tempus mauris.
TEXT,
third: "Nunc aliquet ipsum at semper sodales."
)
错误出现在以下行中:
second: <<~TEXT
RuboCop是这样描述的:
Lint/Syntax: unterminated string meets end of file
(Using Ruby 3.1 parser; configure using TargetRubyVersion parameter, under AllCops)
second: <<~TEXT
你能告诉我语法应该是什么吗?我需要保持<<~
的外观和使用。
2条答案
按热度按时间yzuktlbb1#
另一种选择是在方法调用之后移动here文档。但是,由于here文档从其标识符后的行开始,因此您的方法调用不能跨越多行:
对于较长的值,您可以使用多个heredoc:
xjreopfe2#
使用heredocs,解析器期望精确的分隔符关闭文字。您以
TEXT
打开,但以TEXT,
结束,并且Ruby不会将此字面值视为关闭。但是,您可以(在本例中也应该)将逗号放在开始分隔符之后。这里有个解决办法:您甚至可以这样调用方法。例如,波浪形的here文档(
<<~TEXT
)以前在Rails中作为<<-TEXT.strip_heredoc
完成