2011-09-19 12 views
5

'da çalışmayacak. Tamam, bir süredir raylarım uygulamalarında ajax kullanıyorum. Ne söyleyebilirim, bu formu göndermeden uyarı kutusu tetiklemesi gerektiğini dan nasılsa, benim ilk Rails 3.1 uygulaması ben .. Şimdi, temelleri çalışmakUJS, Rails 3.1

# application.js 
//= require jquery 
//= require jquery_ujs 

# the form 
= form_for @signup, :url => '/signup', :remote => true do |f| 
    = f.text_field :email, :class => 'email', :size => 26 
    = f.submit 'Notify me' 

# the controller 
def signup  # route.rb has 'match '/signup' => 'controller#signup' 
    respond_to do |format| 
    format.js 
    end 
end 

# view: signup.js.erb 
alert('wtf?'); 

alınamıyor. Olmaz. form gönderme şablonunu kılmakla kalmamakta, hangi kontrolör eyleme geçmesi kapsamaz:

Rendered teaser_pages/signup.js.erb (0.1ms) 
Completed 200 OK in 8ms (Views: 7.2ms | ActiveRecord: 0.0ms) 

Sadece hiçbir js tetiklenir.

UJS yardımcıları yüklendi ve (Bence) gerçi ben yaparsanız beklendiği gibi ..

link_to 'click me', '#', :confirm => 'confirmation box!' 

..it bir onay kutusu tetikleyecek çünkü çalışıyor.

Ne eksik olabilirdim? Bakmak için herhangi bir yön takdir edilecektir.

, Erwin teşekkür ederiz

GÜNCELLEME:

Yani raylar yerine text/javascript ait text/html sağlayan başlığında yanlış content-type kanıtlıyor görünüyor. hatta bazı testlerden sonra: Ben çalıştığını jquery-rails aynı sürümü ile taze bir uygulamayı çalıştırdığınızda

render :js => "alert('AHAHAHAHA');", :content_type => 'text/javascript' 

hala content-type text/html

ile bir başlık hale getirecek. Bu uygulamada .. (

)

Nerede görünmeli?

cevap

1

Aynı problemi aldım. Ben de aynı gemfile ile bir test uygulaması kurdum ve açıkladığınız aynı sonucu var: yeni oluşturulan uygulamada çalışır, ancak eski birinde değil. Şu an için gerçek görüntülü aramadan önce içerik türü başlığını elle ayarlıyorum. Öte yandan

respond_to do |format| 
    headers["Content-type"] = 'text/javascript' 
    format.js { render "the_template" } 
end 

Bu

content_type doğru bir şekilde teslim değişmedi: bu anı olur

respond_to do |format| 
    format.js { render "the_template", :content_type => 'text/javascript' } 
end 

Umut.

Bu arada gerçek çözümü aldınız mı?

GÜNCELLEME: Ben gerçek bir sorun buldum En azından

. İçerik_türümünü bir süre önce sınamak için eklediğim text/html'yi zorlayan bir before_filter ve deaktive etmeyi unuttum:

def set_header 
response.headers["Content-Type"] = "text/html; charset=utf-8" 
end 
İlgili konular