2012-01-23 15 views
7

3.1.3 uygulaması, benim javascript dosyasında bazı ERB kodu eklemek istediğiniz varlık boru hattı için javascript erb kod katıştırma ama nedense ayrıştırılmıyordur değil:Benim raylar ise

# app/assets/javascripts/application.js 
//= require_tree ./shared 

# app/assets/javascripts/shared/shared.js.erb 
MM.loading = '<img src="<%= asset_path("icons/ajax-loader.gif") >">'; 

hale Gets the /application.js böyle:

MM.loading = '<img src=" asset_path("icons/ajax-loader.gif") >">'; 

Ben raylar rehberleri ek bir işlem göremiyorum - eksik bir şey var mı? Btw Görünüm dosyaları için haml kullanıyorum ve aynı zamanda #{...} içine dahil .js.haml ile çalıştı.

cevap

10

Kodunuzda bir sözdizimi hatası var. Bu:

MM.loading = '<img src="<%= asset_path("icons/ajax-loader.gif") >">'; 

bu olmalıdır: Sen kod yardımcı bloğunun kapanan erb etiketi eksik

MM.loading = '<img src="<%= asset_path("icons/ajax-loader.gif") %>">'; 

. Raylar 4'te

+0

Ah, iyi benekli ... hepsi bu kadar! – Zubin

+0

Oh, bana iki fotoğrafımı çekti. –

-2

Uygulama.js'nize .erb uzantısı ekleyin ve işe yaramalı.

Gerekli dosyaların içeriği önce dahil edilir, daha sonra bildirimin uzantılarına göre işlenir.

+0

İyi fikrin, ama benim için işe yaramadı. '.erb' dosya adını göstermek için ekledikten sonra shared.js.erb içinde 'console.log (" 1 + 1 = <% = 1 + 1%> koyar ") denir. – Zubin

+0

Bu gerekli değildi. Parantezleri düzelttikten sonra, manifest dosya adında .erb eklemeden çalıştı. – Zubin

0

, yerine js.erb görünümünü kullanmak yerine, sana mümkünse varlık boru hattına sopa önerilir ve pas gon kullanarak Js değişkenler veya başka bir teknik tartışıldı: gon ile Ruby on Rails - Send JavaScript variable from controller to external Javascript asset file

:

app/views/düzenleri/application.html.erb:

<head> 
    <meta charset="utf-8"/> 
    <%= include_gon %> 

app/kontrolörleri/application_controller.rb:

before_filter { gon.path = asset_path('icons/ajax-loader.gif') } 

app/varlıklar/javascripts/shared.js.coffee:

MM.loading = '<img src="' + gon.path + '">'; 

dosya başlangıçta yalnızca bir kez precompiled çünkü bu yöntem daha hızlıdır, sunucu tarafından yerine raylar üzerinden sunulan ve üzerinde alır Js geri kalanı ile aynı HTTP isteği.

Javascript bir varlık URL geçen belirli bir kullanım durumu

de istendi: URL of images in JavaScript code using Rails 3.1 asset pipeline?