Я закончил this tutorial, в котором показано, как выполнять операции AJAX, которые обновили бы представление моей таблицы без обновления страницы.Таблица обновлена через AJAX отсутствует строки
В моем приложении у меня есть ученики и уроки, связанные с прогрессиями.
У меня есть таблица, работающая со всеми методами CRUD для студентов и уроков, но у меня проблемы с успехами.
В основном у меня есть таблица, которая выглядит следующим образом:
http://i61.tinypic.com/10pplpx.png
с этим HTML:
<tbody class="progress-index">
<tr>
<td>Student 1</td>
<td>
<div class="btn-group">
<a class="btn btn-primary btn-progress progress-incomplete" data-remote="true" href="/progresses/29/edit">Started</a>
...
</div>
</td>
<td>
<a class="btn btn-default btn-progress btn-progress-inactive" data-remote="true" href="/progresses/new?progress%5Blesson_id%5D=3&progress%5Bstudent_id%5D=1">Start</a>
</td>
</tr>
<tr>
<td>Student 2</td>
<td>
<a class="btn btn-default btn-progress btn-progress-inactive" data-remote="true" href="/progresses/new?progress%5Blesson_id%5D=1&progress%5Bstudent_id%5D=2">Start</a>
</td>
<td>
<div class="btn-group">
<a class="btn btn-primary btn-progress progress-incomplete" data-remote="true" href="/progresses/30/edit">Started</a>
...
</div>
</td>
</tr>
</tbody>
После нажатия на старт для пустого прогресса, я принят в форме создать его и ввести некоторые поля для этого прогресса (материал, который говорит, где студент находится на уроке), а затем я могу представить прогресс.
Проблема в том, что после того, как я ее отправлю, таблица выглядит действительно перепутанной, и в ней больше нет строк.
http://i57.tinypic.com/fohe92.png
с этим HTML:
<tbody class="progress-index">
Student 1
<div class="btn-group">
<a class="btn btn-primary btn-progress progress-incomplete" data-remote="true" href="/progresses/29/edit">Started</a>
...
</div>
<div class="btn-group">
<a class="btn btn-primary btn-progress progress-incomplete" data-remote="true" href="/progresses/31/edit">Started</a>
...
</div>
Student 2
<a class="btn btn-default btn-progress btn-progress-inactive" data-remote="true" href="/progresses/new?progress%5Blesson_id%5D=1&progress%5Bstudent_id%5D=2">Start</a>
<div class="btn-group">
<a class="btn btn-primary btn-progress progress-incomplete" data-remote="true" href="/progresses/30/edit">Started</a>
...
</div>
</tbody>
код, который делает таблицу:
прогрессирует/index.html.erb
...
<div class="new-progress"></div>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Student</th>
<% @lessons.each do |l| %>
<th><%= l.title %></th>
<% end %>
</tr>
</thead>
<tbody class="progress-index">
<%= render "index" %>
</tbody>
</table>
...
прогрессирует/_index .html.er б
...
<% @students.each do |s| %>
<tr>
<td><%= s.name %></td>
<% @lessons.each do |l| %>
<td>
<% if !Progress.exists?(:student_id => s.id, :lesson_id => l.id) %>
...
<% else %>
...
<% end %>
</td>
<% end %>
progresses_controller.rb
def index
@students = Student.all.sort_by &:name
@lessons = Lesson.all.sort_by &:difficulty
end
Консоль вывода после того, как я представить новый прогресс:
Started POST "/progresses" for ::1 at 2015-02-21 15:54:29 -0800
Processing by ProgressesController#create as JS
Parameters: {"utf8"=>"✓", "progress"=>{"lesson_id"=>"3", "student_id"=>"1", "coached"=>"0", "completed"=>"0", "scratch_project_id"=>""}, "commit"=>"Create Progress"}
(0.1ms) begin transaction
Progress Exists (0.2ms) SELECT 1 AS one FROM "progresses" WHERE ("progresses"."lesson_id" = 3 AND "progresses"."student_id" = 1) LIMIT 1
SQL (0.5ms) INSERT INTO "progresses" ("completed", "coached", "scratch_project_id", "lesson_id", "student_id", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?) [["completed", "f"], ["coached", "f"], ["scratch_project_id", ""], ["lesson_id", 3], ["student_id", 1], ["created_at", "2015-02-21 23:54:29.482937"], ["updated_at", "2015-02-21 23:54:29.482937"]]
(6.9ms) commit transaction
Student Load (0.2ms) SELECT "students".* FROM "students"
Lesson Load (0.2ms) SELECT "lessons".* FROM "lessons"
Progress Exists (0.2ms) SELECT 1 AS one FROM "progresses" WHERE "progresses"."student_id" = ? AND "progresses"."lesson_id" = ? LIMIT 1 [["student_id", 1], ["lesson_id", 1]]
Progress Load (0.1ms) SELECT "progresses".* FROM "progresses" WHERE "progresses"."student_id" = ? AND "progresses"."lesson_id" = ? LIMIT 1 [["student_id", 1], ["lesson_id", 1]]
Progress Exists (0.1ms) SELECT 1 AS one FROM "progresses" WHERE "progresses"."student_id" = ? AND "progresses"."lesson_id" = ? LIMIT 1 [["student_id", 1], ["lesson_id", 3]]
Progress Load (0.1ms) SELECT "progresses".* FROM "progresses" WHERE "progresses"."student_id" = ? AND "progresses"."lesson_id" = ? LIMIT 1 [["student_id", 1], ["lesson_id", 3]]
Progress Exists (0.1ms) SELECT 1 AS one FROM "progresses" WHERE "progresses"."student_id" = ? AND "progresses"."lesson_id" = ? LIMIT 1 [["student_id", 2], ["lesson_id", 1]]
Progress Load (0.1ms) SELECT "progresses".* FROM "progresses" WHERE "progresses"."student_id" = ? AND "progresses"."lesson_id" = ? LIMIT 1 [["student_id", 2], ["lesson_id", 1]]
Progress Exists (0.1ms) SELECT 1 AS one FROM "progresses" WHERE "progresses"."student_id" = ? AND "progresses"."lesson_id" = ? LIMIT 1 [["student_id", 2], ["lesson_id", 3]]
Progress Load (0.1ms) SELECT "progresses".* FROM "progresses" WHERE "progresses"."student_id" = ? AND "progresses"."lesson_id" = ? LIMIT 1 [["student_id", 2], ["lesson_id", 3]]
Rendered progresses/_index.html.erb (8.2ms)
Rendered progresses/_save.js.erb (16.9ms)
Rendered progresses/create.js.erb (23.6ms)
Completed 200 OK in 50ms (Views: 31.7ms | ActiveRecord: 8.8ms)