2011-07-08 12 views
1

私はSinatra + Hamlアプリケーションを作成しています.JavascriptコードでRubyを実行したいと思っています。 erbでは、次のように動作します。Sinatra/Haml:Javascriptの内部でRubyコードを実行するには?

<script type="text/javascript"> 
    $(function() { 
    <% @persons.each do |person| %> 
     $("#<%= person.id %>").attr("style", "<%= person.style %>"); 
    <% end %> 
    }); 
</script> 

しかし、どのように私はこれをHamlに書きますか?私は何かを試しました

しかし、Rubyコードは実行される代わりにコードとしてレンダリングされます。

答えて

1

私は同じ問題を持っていました。基本的な文字列補間はうまくいくようですが、複雑なものはありません。私が採用してきたことである:

-v = "##{person.id}").attr("style", "#{person.style}" 
:javascript 
    $(function() { 
    - @persons.each do |person| 
     $(#{v}); 
    }); 
1
:javascript 
    $(function() { 
    #{- @persons.each do |person|} 
     $("##{person.id}").attr("style", "#{person.style}"); 
    }); 
+0

私はこれをしようとするとき、私は「構文エラー、予期しないtSTRING_DEND」を取得します。これにはどんなトリックですか? – thoughtpunch

+0

申し訳ありません..私の思考過程がこの背中の周りにあったことを正確に覚えていないことがあります。今日、私はおそらく、このアプローチがかなり面倒で扱いにくいため、 – noli

関連する問題