Рельсы прыбыбуг не доступны - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь отладить свой код с помощью инструмента 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?

Спасибо!

...