Warm tip: This article is reproduced from serverfault.com, please click

ruby on rails-如何将多行代码复制到byebug中?

(ruby on rails - How to copy multiple lines of code into byebug?)

发布于 2020-11-29 05:58:45

byebug 似乎无法处理多行代码。

例子

我放入byebug了控制器,接下来的代码行是(这些可以是任何东西,这里只是一个示例):

    payment_intent = Stripe::PaymentIntent.create({
      payment_method_types: ['card'],
      amount: @amount_minor_unit,
      currency: @currency,
      application_fee_amount: 123, # STODO
      transfer_data: {
        destination: @star.stripe_account,
      },
    })

但这是这样做的: 在此处输入图片说明

如果代码被编辑成一行,那么它会成功:

payment_intent = Stripe::PaymentIntent.create({payment_method_types: ['card'],amount: @amount_minor_unit,currency: @currency,application_fee_amount: 123, transfer_data: {destination: @star.stripe_account,},})

但是,这种手动编辑非常繁琐。如何使Byebug接受多行代码,以便可以直接从控制器之类的位置复制/粘贴到Byebug停止的Rails服务器中?

其他想法

控制台中ctrl+d退出byebug,然后退出浏览器错误之后,我可以将代码复制到浏览器中,但是发生相同的事情,如果所有代码都在一行上,它将接受代码:

在此处输入图片说明

..但其他错误均具有与上述相同的语法错误。

Questioner
stevec
Viewed
11
Clara 2020-12-08 00:40:59

我使用gem pry-byebug,它具有你想要的行为,你可以粘贴多行代码而无需立即执行。

https://github.com/deivid-rodriguez/pry-byebug

你可以将其添加到你的gem文件中,并使用以下命令设置断点 binding.pry