如何將表單變量傳遞給僅由AJAX用於將動態數據加載到表單部分的模板?使用AJAX更新依賴表單內容...傳遞表單變量
我有一門課屬於belongs_to課,而has_many課則是gradable_items。如果課程選擇輸入被更改... gradable_items的嵌套字段必須更新以反映所選的課程。
jQuery ->
l = $("#course_lesson_id")
l.on "change", ->
$("#gradable_items_container").load("gradable_items_inputs?lesson=#{l.val()}")
上述腳本的工作原理。它將gradable_items_inputs.html.erb中的代碼加載到目標div中。
gradable_items_inputs.html.erbGradedItem是其中對於每個GradableItem的等級被存儲在模型。 GradedItem belongs_to:gradable_item並屬於課程。
<%= f.simple_fields_for :graded_items do |graded_item| %>
<%= gradable_item.name %>
<%= graded_item.input :gradable_item_id, input_html: { value: gradable_item.id } %>
<% end %>
當我把上面的代碼到gradable_items_inputs.html.erb文件,我得到「未定義的局部變量‘F’」的錯誤。我試着移動AJAX模板文件之外的f.simple_fields_for調用...但是,然後我得到相同的錯誤,但是對於graded_item變量。這種或那種方式我需要通過JavaScript將該表單變量傳遞給模板。
這是我的代碼是什麼樣子的概述:
parent form do |f|
f.association :lesson
nested_form do |n|
// the fields that go here are dependent on the lesson that is chosen above. A model called LessonGradableItem is a join model that holds what items a particular lesson should be graded against. I generate an input for each item...then save the result in the GradedItem model.
// since these inputs are loaded via AJAX from an external template, the form is being broken...how can I pass the n form variable to that file?
end
end
我試圖傳遞表單變量作爲數據PARAM和URL PARAM,但它得到的gradable_items_inputs.html.erb文件解讀一個字符串。
上述的缺點是發送到表單的原始對象不會是返回的錯誤。所以,如果表單被重定向並且頁面重新加載......它將不會有任何失敗的數據。 – hellion