10

rescue binding.pry問題のある行の最後に挿入したファクトリをデバッグするには、次のようにします。

after_create do |my_object, proxy|
  my_object.foreign_key_id = proxy.generated_attribute rescue binding.pry

残念ながら、結果のコンテキスト内でFactoryGirl::Declaration::Implicitは、「通常の」コードのようにコンテキストにアクセスできないようです ( NameError: undefined local variable or method `proxy' for #<FactoryGirl::Declaration::Implicit:0x0...>)。Pry セッション内で検査および操作するにはどうすればよいですか?my_objectproxy

このコードは、Cucumber 機能のバックグラウンドの一部として呼び出されます。

Given the following my_objects exist:
| property |
| value    |

factory_girl_railsまたfactory_girl/step_definitions.rb、サポート スクリプトで必要とされます。

4

1 に答える 1

24

属性名がブロック引数なしで属性を定義できるようにするために、 factory_girl は を使用して定義ブロックを評価し、 を含む のinstance_evalほとんどのプライベート メソッドを定義解除します。つまり、上記の呼び出しは、そのブロックのバインディングを呼び出していないということです。代わりに、「バインディング」という名前の新しい属性を定義し、作成された属性定義を呼び出しています。Objectbindingbinding.pryprypry

代わりに使用することで、これを回避できますKernel.binding.pry

于 2012-05-03T17:45:18.833 に答える