2016-04-12 43 views
0

için bir değişkene nasıl sahip olunur ajax ve jQuery kullanarak bir kısmi viewer yapıyorum. Tıklanan bağlantıya bağlı olarak kısmi bir değişken ayarlamak istiyorum.Bir denetleyiciden, js dosyasına, işlenen kısmi bir

ERB:

<%=link_to "link1", viewer_path(id: Painting.first), remote: true%> 
<%=link_to "link2", viewer_path(id: Painting.last), remote: true%> 

Kontrol:

def viewer 
    @painting = Painting.find_by(:id) 
    respond_to do |format| 
     format.html { redirect_to root_path } 
     format.js 
    end 
    end 

viewer.js.erb

$("#viewer").html("<%= escape_javascript(render 'viewer') %>"); 

_viewer.html.erb

<%= @painting.name %> 

Ancak, kısmi oluşturulduğunda @painting değişkeni ayarlanmadı, bu yüzden bir hata alıyorum.

Denetleyicideki değişkeni tanımlamamış olmanız, kısmi değere kadar taşıyor mu? Neyi yanlış yapıyorum?

cevap

1

Sorununuz olabilir: Model.find_by kullanırken, ne bulduğunuzu belirtmeniz gerekir. Her zaman Modelin :id veya Model.find_by_id veya Model.find_by(id: :id)'u kullanan Model.find kullanmayı deneyin.

Yap kontrolörü # izleyicide bu güncelleme:

@painting = Painting.find(:id) 

Haklısınız da, örnek değişkenler (@painting) partials içinde kullanılabilir durumdadır.

+0

WOOOW Ben bir aptalım. Problemi ilk etapta ayarlamakla ilgili olabileceğini bile düşünmedim. Teşekkürler! –

+0

Ya yığın taşması bana bu gibi birkaç durumda yardımcı oldu. – John