2012-02-07 10 views
2

テンプレート技術をHAMLに更新することを決めました。これは可能な限り、私はそれに新たなんだ、と不思議に思った:HAML内から各ブロックを実行するにはどうすればよいですか?javascript?

:javascript  
    <% @checkins.each do |checkin| %> 
    var latLng = new google.maps.LatLng(<%= checkin.latitude %>, <%= checkin.longitude %>); 

    var marker = new google.maps.Marker({ 
     position: latLng, 
     map: map, 
     title: '<%= escape_javascript(checkin.title) %>' 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     document.location = '<%= checkin_path(checkin) %>'; 
    });  
    <% end %> 

それはRubyのコードに関連するものがあると、コードの一部は、私は問題を抱えていることを確認するのは簡単です

<% @checkins.each do |checkin| %> 

又は

document.location = '<%=checkin_path(checkin) %>'; 

Iは後者を変更しようとした:

- @checkins.each do |checkin| 

しかし、これまでのところうまくいきません。私はすでに同じトピックについて他の多くの質問を読んでいますが、私は本当に「真っ直ぐな」答えを見つけることはできませんでした。

+0

これを見てhttp://stackoverflow.com/questions/5864500と交換しても}

であなたのend文を置き換えます/ how-to-run-ruby-in-haml-in-javascript-definition – Awea

+0

[HAMLの内部でRubyループを使用する方法はありますか:javascrip t地域?](http://stackoverflow.com/questions/2962119/is-there-a-way-to-use-a-ruby-loop-inside-of-hamls-javascript-region) –

+0

はい、それらは投稿する前に私が読んだのと同様の質問が、私は直接IMHOの問題に対処していないと言ったように。申し訳ありません、 – jlstr

答えて

1

てみ

#{ @checkins.each.do |checkin| 

<% @checkins.each do |checkin| %>を交換し、あなたの<%= %>だけcheckin.whateverproperty

+0

うーん、それは動作していないようです。その変更によって、次のJavaScript行に新しいエラーが発生するため、私は何かが欠けていますか? すなわち構文エラー、予期しないtIDENTIFIER、keyword_doまたは '{'または '('が予想されます var latLng =新しいgoogle.maps.LatLng(checkin.latitude ... ...など) – jlstr

+0

ループを単純化し、var mytext = "Bob"もしそれが動作すれば、それはあなたがcheckin.whateverpropertyを含む場所です...私は#{checkin.whateverproprty}のような構文だと思います。 – Webjedi

関連する問題