質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2778閲覧

binding.pryのnextをした際に次の行に移動しない。

ko-u

総合スコア61

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/12/05 13:25

Ruby初学者です。
現在、ポートフォリオのようなものを作成しております。

【実現させたいこと】
binding.pryを使ったデバッグ

【困っていること】
binding.pryをviewに嵌め込みデバッグをしました。
起動はするのですが、nextで次の行に進めようとした際に、以下のように別ファイルのviewが表示されてしまいました。

(binding.pryを差し込んだviewファイル)

<h5><%= related_product.name %></h5> <h3><%= related_product.display_price %></h3> <% binding.pry %>

(ターミナル上の出力)

   16: <h5><%= related_product.name %></h5> 17: <h3><%= related_product.display_price %></h3> 18: <% binding.pry %> => 19: <% end %> 20: </div> 21: </div> 22: </div> [1] pry(#<#<Class:0x00007f9665870e80>>)> next

このようにnextを打ち込み、本来なら20行目に移動すると思うのですが、ActionView::Helpers::CaptureHelper#with_output_buffer:というファイルの206行目に飛ばされてしまっています。

  197: def with_output_buffer(buf = nil) #:nodoc: 198: unless buf 199: buf = ActionView::OutputBuffer.new 200: if output_buffer && output_buffer.respond_to?(:encoding) 201: buf.force_encoding(output_buffer.encoding) 202: end 203: end 204: self.output_buffer, old_buffer = buf, output_buffer 205: yield => 206: output_buffer 207: ensure 208: self.output_buffer = old_buffer 209: end

ご教授頂けますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pry-byebugを導入してください

erbにおいて、<% %> <%= %>でくくられていない行はRubyではなく文字列としてコンパイルされるので
そこでブレークする事はできません。


erb

1<a> 2<%= "aaaa" %> 3</a>

を例とすると内部的には

rb

1r = "<a>\n" 2r += eval('"aaaa"') 3r += "<a>\n" 4return r

的なスクリプトを生成するなり実行するなりして実装されています。

投稿2018/12/05 23:43

編集2018/12/06 01:37
asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ko-u

2018/12/06 01:25

コメントありがとうございます! 既に導入しています。。
asm

2018/12/06 01:38

> 20: </div> で止めたいって……そら無茶ですね
ko-u

2018/12/06 02:12

20行目のコードが、<% %>で括られているものではなかったので内部的なコードが表示されていたんですね。。。 完全に理解が足りていませんでした。。。 ご教授して頂きありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問