1. ホーム
  2. ruby-on-rails

[解決済み] Rails- ネストされたコンテンツタグ

2023-04-14 10:12:07

質問

カスタムヘルパーにコンテンツタグを入れ子にして、以下のようなものを作ろうとしています。

<div class="field">
   <label>A Label</label>
   <input class="medium new_value" size="20" type="text" name="value_name" />
</div>

入力はフォームに関連づけられず、javascriptで保存されることに注意してください。

ここにヘルパーがあります(単にhtmlを表示するだけではありません)。

module InputHelper
    def editable_input(label,name)
         content_tag :div, :class => "field" do
          content_tag :label,label
          text_field_tag name,'', :class => 'medium new_value'
         end
    end
end

<%= editable_input 'Year Founded', 'companyStartDate' %>

しかし、ヘルパーを呼び出すとラベルは表示されず、入力だけが表示されます。 text_field_tagをコメントアウトすると、ラベルが表示されます。

ありがとうございました。

どのように解決するのですか?

あなたは + で素早く修正できます :D

module InputHelper
  def editable_input(label,name)
    content_tag :div, :class => "field" do
      content_tag(:label,label) + # Note the + in this line
      text_field_tag(name,'', :class => 'medium new_value')
    end
  end
end

<%= editable_input 'Year Founded', 'companyStartDate' %>

のブロックの中で content_tag :div の中では、最後に返された文字列だけが表示されます。