0

製品モデルに「something、somethingother」というテキストのnotes属性があります。私が見たかったビューで:

<div>
  <span>Something</span>
  <span>Something else</span>
</div>

また、動作するコードがありますが、デコレータ(ドレーパー)でリファクタリングするか、ヘルパーを使用する必要があります。

%div
  - product.notes.split(/,/).each do |e|
    %span= e.strip.capitalize

デコレータ内:

def notes_list
  model.notes.split(/,/).each do |e|
    h.content_tag(:span, e.strip.capitalize)
  end
end

ビューで:

%div
  = product.notes_list

(またはヘルパーのアナログ:

  def notes_list(product)
    product.notes.split(/,/).each do |element|
      content_tag(:span, element.strip.capitalize)
    end
  end

電話:

%div
  = notes_list(product)

)。

しかし、これは戻ります

    <div>

 "  
                       ["something", " something else"]
                          "
    </div>

なにが問題ですか?

4

1 に答える 1

1

あなたのnotes_listが戻ってきますproduct.notes.split(/,/)

試す

def notes_list(product)
  result = product.notes.split(/,/).inject([]) do |result, element|
    result << content_tag(:span, element.strip.mb_chars.capitalize)
  end
  result.join("\n")
end
于 2012-03-22T11:42:00.633 に答える