所以我有一个帮助方法,我试图将css应用于不将它放在div或任何其他元素中。我如何在rails中将css类应用于这个帮助器?
我试过了:
<%= first_letter_content(e.content), :class => "first-letter" %>
和
<%= (first_letter_content(e.content), :class => "first-letter") %>
两者都导致syntax error, unexpected ',', expecting ')'
帮助程序代码:
def first_letter_content(content)
first_letter = content[0]
return first_letter
end
有什么建议吗?我一直试图找到合适的语法,但没有运气。
答案 0 :(得分:1)
您的帮助程序不支持选项(额外的args),但您尝试为该元素提供HTML类。
您应该将first_letter_content
的内容包含在div / span中(取决于您想要的内容,阻止或内联)并在此HTML元素上应用该类:
<div class='first-letter'>
<%= first_letter_content(e.content) %>
</div>
或者您可以直接将content[0]
包裹在帮助器方法中的div
内:
def first_letter_content(content, options = {})
content_tag(:div, content[0], options)
end
并像这样使用它:
first_letter_content(content, class: 'first-letter')
first_letter_content(content, class: 'first-letter', id: 'something')
first_letter_content(content)
此外,您可以将辅助方法重构为:
def first_letter_content(content)
content[0]
end
这是一个小小的改进,但在Ruby中,最后一件事&#34;方法中使用的方法将由此方法返回。
示例:
def something
a = 2
b = 3
a
end
# => returns `2`
def something_else
a = 2
b = 3
end
# => returns `3`
def whatever
a = 12
nil
end
# => returns `nil`
答案 1 :(得分:0)
我正在尝试将css应用于不将其放入div或任何其他元素
Css类适用于DOM元素,因此您应将此内容包装到某个元素/节点中。
例如:
def first_letter_content(content, css_class)
content_tag(:div, content[0], class: css_class)
end
呼叫:
<%= first_letter_content(e.content, "first-letter") %>