0

使用:

 <%= f.label :registration,"Registration" %>

ラベルを作成します:

<label for="cad_registration">Registration</label>

私はそれがこのようなスパンになりたいです:

<span for="cad_registration">Registration</span>

4

5 に答える 5

3

この<span>要素は-属性をサポートしていませんfor。したがって、の<span>代わりに-elementを使用し<label>ても意味がありません。

<label>(CSS)スタイルを使用して、目的の結果にスタイルを設定しないのはなぜですか?idこの特定の要素のスタイルを設定するだけの場合は、-attributeを使用します。

たとえば、次のようなものを使用して、ラベルのテキストを赤にします。

ERB:

<%= f.label :registration,"Registration", :html => { :id => "my-label" } %>

CSS:

#my-label {
    text-color: red;
}
于 2012-12-31T09:32:56.167 に答える
2

カスタムフォームビルダーを使用して、フォームラベルが要件に合わせて出力される方法を変更できます。ここに簡単な概要があります-http://code.alexreisner.com/articles/form-b​​uilders-in- rails.htmlこのトピックに関するRailscastもありますが、これはより徹底的ですが、プロ(有料)エピソードです。

于 2012-12-31T09:31:24.393 に答える
2

labelその場合、ラベルを作成するのではなく、ヘルパーを使用しないでください。属性は要素forに存在しません。<span>

あなたのコードをあなたが書いた一番下の行に置き換えますが、for:はありません

<span>Registration</span>
于 2012-12-31T09:28:00.780 に答える
1

私は次の解決策を考え出し、レールを拡張しましたFormBuilder

アプリケーションヘルパーで

module ApplicationHelper
  class TestFormBuilder < ActionView::Helpers::FormBuilder
        include ActionView::Helpers::TagHelper

        def span(name, options = {})
          css_classes = []
          css_classes = options[:class].to_s if options[:class]
          content_tag('span', name, :class => css_classes.join(' '))
        end
  end
end

そしてあなたの見解ではあなたは使うことができます

<%= form_for @<module>, :builder => ApplicationHelper::TestFormBuilder do |f| %>
  #your code 
  <%= f.span(:name) %>
<% end %>

これは機能し、FormBuilderの拡張を考えさせられた質問に感謝します;)、

これらのリンクは、link1、link2に役立ちましたさらにいくつかの変更を加えることをお勧めします。

HTH

于 2012-12-31T10:22:07.307 に答える
0

ルビーの外側のスパンを書き留めるだけです

<span for=<%= :registration %>><%="Registration"%></span>
于 2012-12-31T09:35:09.467 に答える