gpt4 book ai didi

ruby-on-rails - 将数组传递给 rspec 中的 get 命令

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:30 24 4
gpt4 key购买 nike

我试图在 rspec 测试的查询字符串中传递一个数组,但它给了我一个错误。我将发送诸如“products[]=desk,chair”之类的查询字符串,并希望 Controller 能够处理它。

这是错误:

Failure/Error: get :index, { :format => :json, :products => [product_1, product_2]}, { "Accept" => "application/json" }
NoMethodError:
undefined method `each' for "[\"desk\", \"chair\"]":String

这是我的测试方法:

product_1 = "desk"
product_2 = "chair"
get :index, { :format => :json, :products => [product_1, product_2]}, { "Accept" => "application/json" }

这是我的 Controller :

products.each do |product|
puts "product: #{product}"
end

def products
params[:products].to_s
end

有什么想法吗?

注意:这是运行 Rails 3.2.12

最佳答案

您将 products 定义为 params[:products].to_s,无论您发送什么,它都是一个字符串。因此,当您在 index 方法中执行 products.each 时,它会失败。

改为在 params[:products] 上执行 each:

def index
params[:products].each do |product|
puts "product: #{product}"
end
end

我确定 puts 只是故障排除代码,但您不应该在您的 Controller 上使用它。

关于ruby-on-rails - 将数组传递给 rspec 中的 get 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34277055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com