복붙노트

[RUBY-ON-RAILS] Rails- 중첩 content_tag

RUBY-ON-RAILS

Rails- 중첩 content_tag

나는 이런 식으로 뭔가를 만들려면 사용자 지정 도우미로 둥지 콘텐츠 태그를 시도하고있다 :

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

입력이 양식과 관련이없는 것을 참고, 그것은 자바 스크립트를 통해 저장됩니다.

여기에 도우미 (단지 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을 주석 경우, 라벨이 표시됩니다.

감사!

해결법

  1. ==============================

    1.당신은 빠른 수정에 +가 필요합니다 : D를

    당신은 빠른 수정에 +가 필요합니다 : 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, 마지막 반환 된 문자열이 표시됩니다.

  2. ==============================

    2.또한 CONCAT 방법을 사용할 수 있습니다 :

    또한 CONCAT 방법을 사용할 수 있습니다 :

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

    출처 : 레일에 중첩 content_tag 3

  3. ==============================

    3.나는 깊은 중첩에 대한 지원에 변수 및 CONCAT를 사용합니다.

    나는 깊은 중첩에 대한 지원에 변수 및 CONCAT를 사용합니다.

    def billing_address customer
      state_line = content_tag :div do
        concat(
          content_tag(:span, customer.BillAddress_City) + ' ' +
          content_tag(:span, customer.BillAddress_State) + ' ' +
          content_tag(:span, customer.BillAddress_PostalCode)
        )
      end
      content_tag :div do
        concat(
          content_tag(:div, customer.BillAddress_Addr1) +
          content_tag(:div, customer.BillAddress_Addr2) +
          content_tag(:div, customer.BillAddress_Addr3) +
          content_tag(:div, customer.BillAddress_Addr4) +
          content_tag(:div, state_line) +
          content_tag(:div, customer.BillAddress_Country) +
          content_tag(:div, customer.BillAddress_Note)
        )
      end
    end
    
  4. ==============================

    4.반복과 중첩 된 콘텐츠 태그를 구축하는 것은 조금 다르다 저에게 모든 시간을 가져옵니다 ... 여기 하나의 방법입니다 :

    반복과 중첩 된 콘텐츠 태그를 구축하는 것은 조금 다르다 저에게 모든 시간을 가져옵니다 ... 여기 하나의 방법입니다 :

          content_tag :div do
            friends.pluck(:firstname).map do |first| 
              concat( content_tag(:div, first, class: 'first') )
            end
          end
    
  5. from https://stackoverflow.com/questions/4205613/rails-nested-content-tag by cc-by-sa and MIT license