2016-09-16 22 views
0

私はRails 4をbyebug、pry-rails、pry-byebug、pry-stack_explorerという宝石とともに使用します。binding.pry in Railsビュー:NameError:未定義のローカル変数またはメソッド

<td class="subtotal"><%= order.display_item_total %></td> 

レール・サーバ・プロセスが実行され、実行がてこブレークポイントで停止し、コンソール内の

<td class="subtotal"><%= binding.pry %></td> 

と型を持つ::

私はビューファイルに置き換える

order.inspect 

エラーメッセージが表示されます。

NameError: undefined local variable or method `order' for #<ActionView::OutputBuffer:0x007fdf13d99bb8> 

私がbinding.pryをorder.inspectに置き換えると、私はブラウザ内で注文のオブジェクト情報を取得します。

私は、コンソール内のpryセッション内でオブジェクトの順序を取得できるはずです。私は間違って何をしていますか?

EDIT: コンソール出力の初めに:

From: /Users/standardnerd/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/activesupport-4.2.7.1/lib/active_support/core_ext/string/output_safety.rb @ line 166 ActiveSu 
pport::SafeBuffer#safe_concat: 

    165: def safe_concat(value) 
=> 166: raise SafeConcatError unless html_safe? 
    167: original_concat(value) 
    168: end 

は、このインパクトの変数のスコープをしていますか?

+1

Hm、それは動作する必要があります。 –

+1

'<%%binding.pry%>'を '<%binding.pry%>' –

+0

@Johnに置き換えてみてください。それでも問題は解決しません。 – StandardNerd

答えて

1

ライン

<td class="subtotal"><%= binding.pry %></td> 

は、出力に表示するbinding.pryからの応答を試みている、と私は、これはあなたのSafeConcatErrorをトリガされ、私はあなたが正しいバインディングにアクセスしていない疑いがあると思います。

ベターので、あなたは合計をレンダリングしようとする直前にpryをやって... ...

<% binding.pry %> 
<td class="subtotal"><%= order.display_item_total %></td> 

を行うことであろう。

関連する問題