Pracuję z połączeniem GEM best_in_place: https://github.com/bernat/best_in_place
Tworzenie nowych rzeczy do zrobienia odbywa się za pomocą:
<%= best_in_place @user, :name, :type => :input, :nil => "Click me to add content!" %>
respond_to :html, :json, :js
def todo_item_fast_create
@todo_list = TodoList.find(params[:id])
@todo_item = @todo_list.todo_items.new(params[:todo_item])
@todo_item.save
respond_with @todo_item
end
Kod odpowiedzi to JSON, ale chciałbym wywołać szablon JS, aby móc manipulować DOM, czy to możliwe?
Odpowiedzi:
0 dla odpowiedzi № 1Musisz utworzyć szablon widoku z nazwą pliku w następujący sposób: todo_item_fast_create.js.erb
ten plik zostanie udostępniony po wywołaniu tej akcji. Być może będziesz musiał dodać :remote => true
do przycisku lub łącza, które wywołuje tę akcję.
To jeden z moich plików JS: new.js.erb (wywoływany, gdy planuję nowy eksport).
$("#export_modal").html("<%= escape_javascript(render("new")) %>");
<!-- trigger the modal to open -->
$("#export_modal").modal("show");
$("#popover1").popover();
To wezwanie do escape_javascript(render("new"))
renderuje częściową odpowiedź js i pozwalam js obsługiwać aktualizację DOM.