2010-11-26 6 views
0

map_blue_1.png,map_blue_2.pngなどを生成しようとしましたが、次のコードを使用しましたが、{i+1}のコーディングエラーが発生しました。正しい方法は何ですか?i + 1の内部レールのハッシュコード?

<% content_for :in_script do %> 
    $("#map").gMap({ 
     markers: [ 
        <% @spots.each_with_index do |spot, i| %> 
        <% if spot.geocoded? %> 
        { 
         latitude: <%= spot.lat %>, 
         longitude: <%= spot.lng %>, 
         html: "<a href='#item_<%= i + 1 %>'><strong><%=h spot.name %></strong></a>", 
         icon: { image: "<%= APP_CONFIG[:site_url] + '/images/map_blue_' + {i+1} + '.png' %>", 
           iconsize: [48, 48], 
           iconanchor: [24,48], 
           infowindowanchor: [24, 0] } 
        }, 
        <% end %> 
        <% end %> 
       ], 
     zoom: 12 }); 
<% end %> 

答えて

2

APP_CONFIG[:site_url] + '/images/map_blue_' + (i+1).to_s + '.png'

または

"#{APP_CONFIG[:site_url]}/images/map_blue_#{i+1}.png"

+0

旧作品。ありがとう。 – Victor

+0

それは価値があるため、#{}セクションを使用するという2番目のアプローチは、常にすべてを文字列に自動的に変換するので、より堅牢なのでベストプラクティスと見なされます。文字列を一緒に追加する最初のアプローチを日常的に使用する場合、to_sを使用することを忘れてしまいます。文字列に数値またはnilを追加しようとすると、爆発することになります。 –

+0

が同意すると、私はむしろ2番目を使用したいと思います。ありがとうマックス – jordinl

関連する問題