0

私のRailsアプリケーションでは、モデルにto_htmlメソッドがあります。このメソッドはビューの1つで呼び出されるため、クラスに関係なくモデルの属性を適切に表示できます(すべてのクラスがそのメソッドを実装しているため)

それはきちんとした解決策ですが、1つのことが私を悩ませます。このhtmlコードを(文字列として)二重引用符で囲み、最終的にはhtmlコードで使用する他の二重引用符を手動でエスケープする必要があります。

代わりにrhtmlファイルを使用できるようにしたいと思います。ファイルを読み取り、その中の最終的なrubyコードを評価して、必要なエスケープ文字を含む文字列として結果を返します。例を挙げましょう:

次のコード:

<label for="blabla"> <%= ruby_variable.name %> </label>

処理されたときに私を返す必要があります:

"<label for=\"blabla\"> name </label>"

誰かがすでにそれをしていることを知っているか、私を良い方向に向けることができますか?私はそれを自分で行うコードを書くことを考えていました。しかし、何かがすでに機能している場合は、それを使用して喜んでいます。

ありがとう

4

1 に答える 1

0

必要に応じて、ビューの外部でERBを直接使用できます。例えば:

require 'erb'
v = 'testing123'
output = ERB.new('<label><%= v %></label>').result(binding)

戻ります

<label>testing123</label>

とはいえ、Railsが提供するモデル、ビュー、コントローラーの分離を壊すため、モデルクラスにto_htmlメソッドが必要な理由は完全にはわかりません。それはあなたにお任せします!

于 2010-08-11T15:22:48.633 に答える