I'm trying to concatenate multiple tags using content_tag and safe_concat, something like:
content_tag(:select, multiple: "multiple", :name => "contact[resources]") do
content_tag(:optgroup, label: "LABEL", id: "some-id") do
safe_concat(
if condition1
(content_tag(:option, value: "val1") { "Val1" } )
end
if condition2
(content_tag(:option, value: "val2") { "Val2" } )
end
)
end
end
But I keep getting the following error:
syntax error, unexpected keyword_if, expecting ')'
syntax error, unexpected end-of-input, expecting keyword_end
you need to wrap every single output in safe_concat
, like
content_tag(:select, multiple: "multiple", :name => "contact[resources]") do
content_tag(:optgroup, label: "LABEL", id: "some-id") do
if condition1
safe_concat(content_tag(:option, value: "val1") { "Val1" } )
end
if condition2
safe_concat(content_tag(:option, value: "val2") { "Val2" } )
end
end
end