私は協会を通じてfind_or_initialize_byを使用していくつかのコードがあります:いくつかのテストの目的のためにRailsとRSpecの:モックassocation収集リターン
author.posts.find_or_intialize_by(params)
を、私が返されているものを制御することがしたいと思います。しかし、私は何を嘲笑すべきかを理解できないようです。
author.posts.class #=> Post::ActiveRecord_Associations_CollectionProxy
allow(Post::ActiveRecord_Associations_CollectionProxy).to receive(:find_or_initialize_by).and_return(Post.new)
これは、エラーが発生します。私は私のようなものであることを私のクエリを変更することができます実現
Post::ActiveRecord_Associations_CollectionProxy does not implement: find_or_initialize_by
:claritiyのために
Post.find_or_initialize_by({author: author}.merge(params))
、私がやってみたいですこれは協会を通じて。
私のレコードを返すためにこのコレクションをモックできますか?
待機 - 例えば私のコードを消毒しながら、なぜあなたは*記事の収集に*の作者*を返すようにしようとしている* ... –
を@TarynEast申し訳ありませんが、タイプミス。私はそれを更新しました。 – steel
kewl - それは私が完全に問題を誤解していたと思うと思った:D –