Редактировать # 2
Вот журнал сервера, когда я нажимаю на галочку
Started PUT "/course_modules/module-1-understanding-email-marketing-basics/complete" for 127.0.0.1 at 2018-09-19 16:29:42 +0100
Processing by CourseModulesUsersController#complete as HTML
Parameters: {"authenticity_token"=>"CfIM56PhiIRumytV99CE7GFK6tYumCgDvBwUS79jhbCr3zpXLfbJgvqUFkzwmKLXQiOxk1SmFvGoO4+M1z87wg==", "id"=>"module-1-understanding-email-marketing-basics"}
CourseModulesUser Load (0.7ms) SELECT "course_modules_users".* FROM "course_modules_users" WHERE "course_modules_users"."id" = $1 LIMIT $2 [["id", 0], ["LIMIT", 1]]
↳ app/controllers/course_modules_users_controller.rb:3
Completed 500 Internal Server Error in 6ms (ActiveRecord: 0.7ms)
NoMethodError (undefined method `complete=' for nil:NilClass):
app/controllers/course_modules_users_controller.rb:4:in `complete'
Редактировать # 1
Так вот, где я сейчас нахожусь.
Я могу получить доступ к записям с помощью консоли rails
irb(main):017:0> @course_modules_users = CourseModulesUser.find_by(id: 1)
CourseModulesUser Load (0.4ms) SELECT "course_modules_users".* FROM "course_modules_users" WHERE "course_modules_users"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
=> #<CourseModulesUser id: 1, course_module_id: 1, courses_user_id: 1, complete: false, created_at: "2018-09-19 13:04:16", updated_at: "2018-09-19 14:58:17">
irb(main):018:0> @course_modules_users.complete = true
=> true
Если я попытаюсь проверить на основе логического значения, подобного этому
<% if @course_modules_users.where(complete: true).nil? %>
<i class="fas fa-check text-green float-left mr-1"></i>
<span class="text-xs mr-2">Completed</span>
<% else %>
<%= link_to complete_course_module_path(course_module), method: :put do %>
<i class="fas fa-check text-grey-darkest float-left mr-2"></i>
<% end %>
<% end %>
Показывается как
Но если я вручную изменяю запись
, ничего не меняетсяинтерфейс
Оригинал
Вот моя ошибка:
Итак, в настоящее время у меня есть настройка маршрута, при нажатии которой запускается следующий метод complete
с изменением записи на true.Однако, как вы можете видеть, он не может найти полный метод.
Вот база данных
Я проверил это в терминале, и он можетнайти полное поле