witam
ma ktoś moze jakiś tutorial/porade w temacie jak w tytule ? chciałbym po wybraniu opcji z selecta dodać w zależności od wartości wyrenderowaną zawartość partiala, mam juz javascript
$(function($) {
$("#type").change(function() {
$.get('#{type_fields_url}', {outlet_type: $("#type :selected").val()}, function(data) {
$("#extra_fields").html(data);
});
});
})
Jednak nie wiem jak przekazać form, żeby w partialu móc użyć fields_for. Używam rails 3.2
Dołączam się do pytania. Też miałem ostatnio do czynienia z problemem podobnej natury i musiałem (z niewiedzy właśnie, zapewne) poradzić sobie z tym tak, że w tym partialu na nowo zdefiniowałem formularz, zastępując poprzedni. Nie jest to jednak zbyt eleganckie rozwiązanie.
Z tego co się orientuję to zmienne generowane przez rubiego nie są dostępne w javascript tak, żeby móc je przekazać ajaxem, ale to pewnie wiesz. W twoim propozycji chcesz aby js przechowywał coś z rubiego.
Jednym z rozwiązań może być to, że po stronie serwera generujesz cały formularz łącznie z tagiem form, a po otrzymaniu tego w jsie poprostu wycinasz odpowiedni content, czyli fragment formularza wygenerowanego z fields_for.
Generujesz formularz w dowolny sposób jak chcesz, bo w końcu wywołujesz odpowiednie żądanie GETem do railsów, czyli po stronie railsów uruchamiany jest odpowiedni kontroler, itd (to czy będzie to normalny widok czy partial w tym momencie nie ma znaczenia). Wynik który otrzymasz -> kod html, obrabiasz odpowiednio np. poprzez wzięcie tego co jest wewnątrz tagu form.