【问题标题】:How to pass in a form param from a Rails controller in RSpec?如何从 RSpec 中的 Rails 控制器传递表单参数?
【发布时间】:2012-08-21 20:53:24
【问题描述】:

我正在尝试为我的 Rails 3 控制器之一编写规范。我要走的路是:

GET /:user_id/photos/shared_photos?page=:page

:page 参数通常通过来自浏览器中的 JQuery 单击处理程序的 AJAX 请求来实例化。但是,在 RSpec 中,我正在尝试直接测试控制器,并且在传递该 :page 值的语法方面遇到了问题。我试过了:

get :shared_photos, :id => user.id, :page => 2

但这不起作用。我得到一个路由错误,大概是因为没有 /:page/ 部分路由,所以 Rails 不明白。我的问题是,如何从我的控制器规范之一传递该页面参数?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails forms rspec controller param


    【解决方案1】:

    get 添加任意参数不应导致路由错误(本身),因此我认为您在寻找问题的错误位置。

    如果您正在测试 AJAX 响应,也许您应该尝试:

    xhr :get, :shared_photos, :id => user.id, :page => 2
    

    还要确保格式与您的控制器期望的格式相匹配(如果是 JSON,则添加 :format => :json)。

    另请参阅我之前对此问题的回答:How do I test this code in RSpec?

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      相关资源
      最近更新 更多