Я пытаюсь отладить свой код с помощью инструмента pry-byebug, но когда я запускаю "консоль rails" в моем терминале, а затем вызываю метод класса, в котором должен работать отладчик, ничего не происходит. Я установил драгоценный камень и установил комплект в соответствии с документацией: https://github.com/deivid-rodriguez/pry-byebug
Так что в основном у меня есть 2 модели, Grid и Cell. Когда создается экземпляр Grid, я хочу создать соответствующие экземпляры Cell. Пока что это не работает, но моя главная проблема в том, что я не могу отлаживать и знаю, где что-то идет не так.
Поэтому я добавил команду binding.pry в метод create класса Grid,Надеюсь пройтись по остальной части кода построчно и понять, где я что-то сделал не так.
Однако, когда в «консоли rails» я делаю что-то вроде Grid.new (session_id: 1, rowings: 3, column: 3), все, что я вижу, это то, что экземпляр был создан и сохранен в БД.
Таким образом, я управляю доступом к методу "создать", но не показываю ни путы, ни параметры pry-byebug.
Даже в моих журналах нет сообщений об ошибках.
Я читал другие посты на эту тему, но до сих пор ни один не работал для меня, например, такой: Точки останова с pry-byebug не запускаются в консоли
Вотмой GridController
require "pry-byebug"
class GridsController < ApplicationController
# after_create :generate_cells_for_grid
after_action :generate_cells_for_grid, only: [:create]
def new
@grid = Grid.new
end
def create
puts "In the CREATE method" # This puts never shows up in the console
binding.pry
@grid = Grid.new()
@grid.save
end
def generate_cells_for_grid
rows = @grid.rows
columns = @grid.columns
id = @grid.id
# Creating cells for every position to fill the grid
for row in 1..rows do
puts row
for column in 1..columns do
puts row
puts column
Cell.create({
grid_id: 1,
player_id: 1,
colour_id: 1,
x_coordonate: row,
y_coordonate: column,
alive: false
})
end
end
end
def index
end
def show
@grid = Grid.find(params[:id])
end
def update
@grid = Grid.find(params[:id])
@grid.update(params[:grid])
end
def edit
end
def delete
end
end
Вот что я получаю в "консоли rails":
[30] pry(main)> Grid.create(session_id: 1, rows: 3, columns: 3)
(1.7ms) BEGIN
Session Load (0.3ms) SELECT "sessions".* FROM "sessions" WHERE "sessions"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
Grid Create (0.7ms) INSERT INTO "grids" ("session_id", "rows", "columns", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["session_id", 1], ["rows", 3], ["columns", 3], ["created_at", "2019-11-07 11:07:08.951668"], ["updated_at", "2019-11-07 11:07:08.951668"]]
(0.5ms) COMMIT
=> #<Grid:0x00007fce6b2cf790
id: 31,
session_id: 1,
rows: 3,
columns: 3,
created_at: Thu, 07 Nov 2019 11:07:08 UTC +00:00,
updated_at: Thu, 07 Nov 2019 11:07:08 UTC +00:00>
Что я делаю не так, чтобы не активировать pry-byebug? Есть ли более эффективный способ отладки на Rails?
Спасибо!