【问题标题】:Route not found in rails engine rspec request spec在 rails 引擎 rspec 请求规范中找不到路由
【发布时间】:2013-08-19 15:36:50
【问题描述】:

我正在使用forem rails 引擎,但我无法编写 rspec request 规范,因为找不到我尝试使用的路线(根据 rspec)。我想使用请求规范发出POST 请求以创建对主题的回复。

请求规范中的以下内容不起作用:

post "/forums/topics/#{topic.to_param}/posts", :post => { 'text' => 'reply' }

失败了

No route matches [POST] "/forums/topics/first-topic/posts"

事情是这样的:从spec/dummy rake 路由:

Routes for Forem::Engine:
  POST   /topics/:topic_id/posts(.:format)     forem/posts#create

从网站创建帖子的日志

Started POST "/forums/topics/welcome-to-forem/posts" for 127.0.0.1 at 2013-08-19 22:23:47 +0800
Processing by Forem::PostsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"vnzhdaRDTye1wM5eQEIAW8W/urG/18PJ02oPqcX3pK8=", "post"=>{"text"=>"asdf", "reply_to_id"=>"1"}, "commit"=>"Post Reply", "topic_id"=>"welcome-to-forem"}

来自请求规范内的撬动会话 - 显示路径被 forem 识别,但不是主机应用程序。

> forem.recognize_path "/topics/#{topic.to_param}/posts", :method => :post
=> {:action=>"create", :controller=>"forem/posts", :topic_id=>"first-topic"}

> Rails.application.routes.recognize_path "/topics/#{topic.to_param}/posts", :method => :post
ActionController::RoutingError: No route matches "/topics/first-topic/posts"

如何编写请求规范以创建对主题的回复?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 rspec


    【解决方案1】:

    我猜想使用字符串 ID 不是一个好习惯。尝试使用整数 ID 而不是字符串。但如果您仍想使用字符串 ID,我认为 this 链接可以帮助您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多