Jak przekazać form builder w przekierowaniu Ajax

Witam, zacząłem tworzyć zaawansowany formularz ( jak na mnie :wink: ) i natrafiłem na problem z przekazaniem zmiennej formularza ‘f’ w moim przypadku, za pomocą coffeescripta, do partiala,

W necie ciężko znaleźść jakąś jedną spójną ideę. Jak Wy sobie z tym radzicie ?

Nie bardzo rozumiem pytania, chcesz kawałek formularza wrzucić do partiala?

W zasadzie tak.

Piszę sobie aplikację o grze fabularnej i sprawa wygląda tak:

Mam obiekt Clan > który ma wiele obiektów School > które mają wiele obiektów typu Skill, powiązanych przez model Skill_of_object, wszystkie relacje na sztywno tworzone są w seed

Zacząłem tworzyć formularz do tworzenia postaci. I tak, postać wybiera klan poprzez collection_select menu, do którego podpięta jest coffeescript akcja.

$(document).on 'change', '#character_clan_id', ->
 $.ajax
   url: 'on_clan_change'
   type: 'GET'
   dataType: 'script'
   data: {
     clan_id: $("#character_clan_id option:selected").val(),
     school_bonus: $("#character_school_bonus").val(),
     family_bonus: $("#character_family_bonus").val() }

I na tej podstawie generowana jest konkretna szkoła i jej umiejętności.

Jednak żeby dodać umiejętności ze szkoły do postaci potrzebuję, przeładować partiala i przekazać tam zmienną|f| żeby skorzystać z funkcji fields_for

robisz tutaj nowe zapytanie do backendu, jeżeli chcesz po stronie serwera wykorzystać f to musisz go sobie na nowo zbudować.

Poczytałem trochę iternetu i bazując na ostatniej odpowiedzi tego >> [tego pytania], wyszło mi coś takiego, w moim viewsu js.erb podpiętym do tej akcji:

'<%= form_for [current_user, @character] do |f| %>'
  $('#school_skills').html("<%= j render( partial: 'school_skills', locals: {f: f}) %>");
'<% end %>'

Ale wciąż dostaję komunikat:

ActionView::Template::Error (undefined local variable or methodf’ for #<#Class:0xca1eb70:0xd0811c0>):`

Jakiś pomys jak mam na nowo stworzyć buildera i przekazać go do partiala ?

(http://stackoverflow.com/questions/1923939/pass-form-builder-in-remote-function-in-rails)

Jak to zwykle bywa, problem był w pliku js.erb. Zanim zacząłem zabierać się za dynamiczne zmienianie wartości, miałem inną wersje roboczą partiala, ‘school_skills’ i renderowałem go bez |f|, a gdy już zabrałem się za poprawki, zapomniałem o tym, że wcześniej wywoływałem tę partycję, a byłem zbyt przejęty tym że nie działa mi coś co nie do końca rozumiem. Wniosek bardziej wczytywać się w logi :slight_smile: