不要以爲這是這樣做的最佳方式,但我沒有想出更好的主意所以......
創建新功能
../app /assets/javascripts/diys.coffee
# Add fields for additional vehiclesS
addVehicleFields = (addVehicleButton, newAttachVehicleDiv, attachVehiclePartial, addVehicleDivButton) ->
$(document).on 'click', addVehicleButton, (evt) ->
$.ajax 'attach_vehicle',
type: 'GET'
dataType: 'script'
data: {
addVehicleButtonDiv: addVehicleDivButton,
newVehicleDiv: newAttachVehicleDiv,
newVehiclePartial: attachVehiclePartial
}
error: (jqXHR, textStatus, errorThrown) ->
console.log("AJAX Error: #{textStatus}")
success: (data, textStatus, jqXHR) ->
console.log("Addin new vehicle fields OK!")
addVehicleFields '#add_vehicle_button2', '#attached_vehicle2', 'diys/attach_vehicles/attach_vehicle2_form', '#add_vehicle_div_button2'
addVehicleFields '#add_vehicle_button3', '#attached_vehicle3', 'diys/attach_vehicles/attach_vehicle3_form', '#add_vehicle_div_button3'
...
導致
../app/views/diys/attach_vehic le.js.ERB
$("<%= @newAttachVehicleDiv %>").html("<%= escape_javascript (render @attachVehiclePartial) %>");
$("<%= @newAttachVehicleDiv %>").slideDown(350);
$("<%= @addVehicleDivButton %>").css('display', 'none');
而且曾在
../diys_controller.rb attach_vehicle行動
def attach_vehicle
...
@addVehicleDivButton = params[:addVehicleButtonDiv]
@newAttachVehicleDiv = params[:newVehicleDiv]
@attachVehiclePartial = params[:newVehiclePartial]
respond_to do |format|
format.js
end
end
定義這些變量並按鈕路徑 '#'
<div id="add_vehicle_div_button2">
<%= link_to 'Add vehicle', '#', remote: true, id: "add_vehicle_button2" %>
</div>
謝謝你的努力!我在想,如果我不會想出更好的主意,我會在assets/javascripts/related.coffee中使用onclick函數,這將通過ajax attach_vehicle.js.erb調用,然後它將加載部分。現在將測試並決定選擇哪種方式:) –
當然可以。讓我知道你是怎麼做到的。 –
是的,這是我的方式,如果你有興趣檢查我對這個問題的回答:) –