0

私はコントローラーメソッドを持っています:

def do_it
   @result = "some <b>another</b>"

   respond_to do | format |  
        format.js {render :layout => false}  
   end
end

そしてdo_it.js.erb:

$( "#in" ).html("<b>hello</b> <br /> <%= @result %>");

このメソッドを呼び出すと、「hello」は太字のテキストとして表示されますが、「another」はブラウザにタグが付いた通常のテキストとして表示されます。

ここに画像の説明を入力してください

すべてのhtmlタグを非表示にし、「another」を太字で表示する必要があります。どうすれば修正できますか?

4

2 に答える 2

1

<%=%>は、デフォルトでHTMLコードをエスケープします。これを防ぐには、次の方法があります。

$( "#in" ).html("<b>hello</b> <br /> <%= raw @result %>");

また

@result = "some <b>another</b>".html_safe()
于 2012-11-14T11:50:47.057 に答える
0

私はルビーについてあまりよく知りませんが、あなたの問題に関連しているかもしれないこの投稿に来ました:

1-レール:文字列をHTMLエンコード/エスケープする方法は?ビルトインはありますか?

2 -RubyでHTMLエンティティをエンコード/デコードするにはどうすればよいですか?

元の文字列をhtmlでエンコードする必要があると思います

@result = "some <b>another</b>"

次に、表示時にhtmlデコードします。幸運を

于 2012-11-14T10:50:11.323 に答える