我正在努力实现这个目标:
<label ...>First name<em>*</em></label>
<input ... />
用这个:
<%= d.label :first_name do %>First Name<em>*</em><% end %>
<%= d.text_field :first_name, :required => "required" %>
但实际上是在制作:
First Name
<em>*</em>
<label ...>
First Name
<em>*</em>
</label>
<input .../>
我如何获得我想要实现的html输出?
答案 0 :(得分:3)
只需将标签内容作为第二个参数传递给块,并使用.html_safe
来阻止它被编码:
<%= d.label :first_name, "First Name<em>*</em>".html_safe
答案 1 :(得分:2)
尝试使用原始
<%= d.label :first_name, raw("First Name<em>*</em>") %>
答案 2 :(得分:2)
虽然这两个答案都完成了工作,但从网页设计的角度来看,它并不是真正“最正确”的方式。
相反,请考虑为标签提供类似“必需”的html类。然后在CSS中,为“required”类的标签元素定义一个选择器,该类添加一个*并根据需要对其进行样式化。
以下是我的一个项目中的一些SCSS:
.required::before {
content: '*';
color: $orange;
margin-right: 2px;
position: relative;
left: -2px;
};