Я новичок в Rails, и мне было поручено изменить устаревший код, написанный на slim для ERB. Все шло гладко, но когда я достиг атрибутов splat и обнаружил, что заблокирован.
Тонкий, который я пытаюсь преобразовать, выглядит так:
doctype html
html lang="en" *data_turbolinks_messages
head
Соответствующий контроллер:
DATA_TURBOLINKS_MESSAGES = {
'data-turbolinks-messages' => ENV.fetch('TURBOLINKS_MESSAGES')
}.freeze
def data_turbolinks_messages
DATA_TURBOLINKS_MESSAGES
end
И последний HTML-код, который я ожидал, выглядит так:
<!DOCTYPE html>
<html data-turbolinks-messages="VariableValue" lang="en">
<head></head></html>
Я пытался использовать slimrb --rails -e
, но в результате получилось много тонких вспомогательных объектов, таких как ::Slim::Splat::Builder.new(_slim_splat_filter)
, и я не знаю, как написать это в ERB.
Другие решения, которые я пробовал (стрельба в темноте ... опять же, новинка для Rails)
<%= **data-turbolinks-messages -%>
<%= **data-turbolinks-messages.html_safe -%>
<%= *data-turbolinks-messages %>
<%= data-turbolinks-messages.to_s %>
<% *data-turbolinks-messages.html_safe %>
<%= tag.html lang:'en' data-turbolinks-messages %>
<%= tag.html lang:'en' data: data-turbolinks-messages do %>...<% end %>
<%= tag.html lang:'en' data:{data-turbolinks-messages} do %>...<% end %>
Есть ли способ вывести этот хеш в качестве параметров тега ключ-значение, надеюсь, без изменения контроллера, у которого есть другие зависимости?
спасибо!