2011-07-05 7 views
2

コントローラに何かコードを入力することで、もっとうまくいくかもしれませんが、私は次のような理由をイメージできません。 @some_table.some_textに5行が含まれているとします。 私html.erbファイルに次のコードを置く:@some_table.some_text内のすべての行に続いて5 foo秒でRailsはhtml.erbで文字列を使用しています。

<% @some_table.some_text.lines.each do |cur_line| %> 
    foo 
<% end %> 

結果。 <%= %>を使用していて、<% %>を使用していないと、これが起こると思います。 明らかに、私は@some_table.some_textを表示したくありません。

私はここで間違っていますか?

答えて

1

これは、Ruby linesメソッドが機能する方法です。同じ方法でループすることができないEnumerableを返します。目的に応じて、代わりに

<% @some_table.some_text.split(/\n/).each do |cur_line| %> 

とお試しください。

また例えば、methodsのいずれかを使用して、eachを呼び出す前に、配列にEnemerableを変換:作品

<% @some_table.some_text.lines.collect.each do |cur_line| %> 
+0

おかげで、。しかし、まだ私は混乱しています。私は '<% %>'は返すデータをhtml出力としてレンダリングしていないと考えました。 – SirLenz0rlot

関連する問題