Railsアプリでacts_as_commentableを使用して、さまざまなタイプのモデルにコメントできるようにしています。
ポリモーフィックCommentsController
アラポリモーフィック アソシエーション Railscastがあります。
このコントローラーの仕様を書こうとしています。ただし、 acts_as_fuを使用して、コントローラーが仕様で使用するジェネリックCommentable
クラスを定義したいと考えています。このようにして、具体的なコメント可能なモデルの 1 つに結び付けられません。
Commentable
問題は、コントローラー アクションをテストしようとすると、 acts_as_fu を使用して作成したクラスのルートがないため、ルーティング エラーが発生することです。
この動的に作成されたモデルのルートをbefore(:all)
(ちなみに RSpec を使用して) 仕様に描画する方法が必要です。
これまでの私の仕様は次のようになります。
describe CommentsController do
before(:all) do
# Using acts_as_fu to create generic Commentable class
build_model :commentable do
acts_as_commentable :comment
belongs_to :user
attr_accessible :user
end
# TODO - Initialize Commentable routes
end
end
更新:「ハッキーな」ソリューションが見つかりました。しかし、これを行うためのよりクリーンな方法があるかどうか疑問に思っています。