2

私はこれを達成しようとしています:

<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出力を取得するにはどうすればよいですか?

4

3 に答える 3

3

ラベルの内容を2番目の引数としてブロックに渡し、.html_safeそれがエンコードされないようにするために使用します。

<%= d.label :first_name, "First Name<em>*</em>".html_safe
于 2012-11-25T15:29:53.317 に答える
2

生で試してみてください

<%= d.label :first_name, raw("First Name<em>*</em>") %>
于 2012-11-25T14:55:37.400 に答える
2

これらの答えは両方とも仕事を成し遂げますが、それはWebデザインの観点からは実際には「最も正しい」方法ではありません。

代わりに、ラベルに「必須」のようなhtmlクラスを与えることを検討してください。次に、CSSで、「必須」クラスのラベル要素のセレクターを定義します。このセレクターは、*を追加し、必要に応じてスタイルを設定します。

これが私のプロジェクトの1つからのSCSSです:

.required::before {
        content: '*';
        color: $orange;
        margin-right: 2px;
        position: relative;
        left: -2px;
      };
于 2012-11-25T23:44:52.357 に答える