我正在为可评论功能构建一个新的 rails3.1 引擎。
我创建了引擎,生成了名为Comment
.
发动机config/routes.rb
有:
Kurakani::Engine.routes.draw do
resources :comments
end
spec/dummy
rails 应用程序有一个名为的资源,Post
它的路由有:
Rails.application.routes.draw do
resources :posts do
resources :comments
end
mount Kurakani::Engine => "/kurakani"
end
我已经设置了引擎的 Comment 模型和虚拟 Rails 应用程序的 Post 模型之间的关联。
然后在spec/dummy
Rails 应用程序中,我在show
Post 的模板中呈现了评论表单。表单也会生成,其动作路径为post/1/comments
.
当我运行规范时,我认为它会尝试在应用程序本身内部搜索控制器,spec/dummy
而不是提交到引擎的app/controllers/kurakani/comments_controller.rb
,所以当我运行规范时出现以下错误。
$ bundle exec rspec spec/integration/comments_spec.rb ruby-1.9.2-p180
No examples matched {:focus=>true}. Running all.
Run filtered excluding {:exclude=>true}
/Users/millisami/gitcodes/kurakani/app/views/kurakani/comments/_form.html.erb:3:in `___sers_millisami_gitcodes_kurakani_app_views_kurakani_comments__form_html_erb___1787449207373257052_2189921740'
F
Failures:
1) Kuraki::Comment authenticated user creating a new comment
Failure/Error: click_button "Create"
ActionController::RoutingError:
uninitialized constant CommentsController
# ./spec/integration/comments_spec.rb:29:in `block (3 levels) in <top (required)>'
如何指定要提交给引擎comments_controller.rb
而不是spec/dummy
应用程序的评论?
如果我不能把问题说清楚,我已经在https://github.com/millisami/kurakani推送了 repo