你如何将阵列传递给Sinatra?

时间:2013-08-28 15:44:02

标签: ruby rspec sinatra

我在我的rspec测试中有这个

it 'that can be mass inserted' do
        score_count = Score.all.length
        post '/score', @mass_score_data
        Score.all.length.should eq score_count+2
end

其中@mass_score_data是一个哈希数组[{id:5,某事:3},{id:4,某事:2}]。我假设我从连接到Sinatra的应用程序获取此数组。

rspec说

 Failure/Error: post '/score', @mass_score_data
 NoMethodError:
   undefined method `read' for #<Array:0x007fd7e507bd80>

我在这里遗漏了什么,或者我们不能将数组传递给Sinatra? BTW我也试过像[1,2,3,4]那样的数组,它仍然是“未定义的方法'读''”

1 个答案:

答案 0 :(得分:2)

假设post类中的Score正文如下:

post '/add_scores' do
  scores = params[:scores]
  ....
end

然后你应该能够做到:

post 'add_scores', {:scores => @mass_data}

请查看Testing in Sinatra以便进一步阅读。