Jedes Mal, wenn der Benutzer auf einen Link klickt, möchte ich ihm den nächsten Teil der Daten anzeigen. Ich bin eine Instanzvariable @i
zu diesem Zweck verwendet:@instance_variable im Controller jedes Mal erhöhen
# link in a view
<%= link_to 'Next', user_test_do_path, controller: :do, action: :list_update, user_id: 1, test_id: 2, remote: :true, [email protected] %>
# controller and action
class DoController < ApplicationController
def list_update
@i+=1
@cur_test = Test.where(id: params[:test_id])
@cur_q_all = Question.where(test_id: @cur_test)
@cur_q = @cur_q_all[@i]
@cur_ans_all = Answer.where(question_id: @cur_q)
end
end
ist jedoch @i
nicht erhöht und bleibt immer gleich 0 Meine Frage lautet: Wie Wert von @i
mit jeweils erhöht, um klicken Sie auf ein link_to
?
Gelöst! Dies ist meine letzte Arbeit link_to:
danke! Es sieht einfach aus, aber funktioniert immer noch nicht - 'current_i: @ i' in' link_to' verändert den neuen Wert nicht von der Aktion 'list_update' nachdem dieser Helfer aus irgendeinem Grund aufgerufen wurde –
meinst du eigentlich diesen Wert von' @ i' drin 'list_update' bleibt gleich 0? Könntest du irgendeine Art von 'puts @ i' und' puts params [: current_i] 'in' list_update' platzieren, um ihre Werte zu verifizieren? Beachten Sie, dass 'remote: true' bedeutet, dass Sie eine Art' js'-Skript zurückgeben und es richtig rendern sollten. – twonegatives
Lass mich dich umarmen !!! Ich fand, wo war mein Fehler - es war in den Pfad in link_to Helfer - ich leitete Benutzer auf die Testseite (Action-Show) umgeleitet, aber wenn ich es zu test/list_update Aktionsseite änderte es begann zu arbeiten –