Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 获取呈现参数错误:正确的语法或用法是什么?_Ruby_Sinatra_Pusher - Fatal编程技术网

Ruby 获取呈现参数错误:正确的语法或用法是什么?

Ruby 获取呈现参数错误:正确的语法或用法是什么?,ruby,sinatra,pusher,Ruby,Sinatra,Pusher,我不熟悉Ruby、Sinatra和Pusher,所以这是一个基本问题。我正在尝试验证Pusher客户端(使用iOS演示代码)。当iOS客户端尝试加入状态通道时,以下服务器代码失败并出错: ArgumentError - wrong number of arguments (1 for 2): /Users/waveocean/.rvm/gems/ruby-1.9.3-p327/gems/sinatra-1.3.3/lib/sinatra/base.rb:665:in `render'

我不熟悉Ruby、Sinatra和Pusher,所以这是一个基本问题。我正在尝试验证Pusher客户端(使用iOS演示代码)。当iOS客户端尝试加入状态通道时,以下服务器代码失败并出错:

ArgumentError - wrong number of arguments (1 for 2):
    /Users/waveocean/.rvm/gems/ruby-1.9.3-p327/gems/sinatra-1.3.3/lib/sinatra/base.rb:665:in `render'
    web.rb:13:in `auth'
    web.rb:26:in `block in <main>'
    /Users/waveocean/.rvm/gems/ruby-1.9.3-p327/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:in `call'

... snipped for brevity ...

有人能提供一个建议或正确使用render吗?

以下是我的发现<代码>渲染与Rails关联,而不是严格意义上的Ruby。要响应Sinatra路由,请在auth方法中使用以下命令:

def auth
  response = Pusher[params[:channel_name]].authenticate(params[:socket_id], {:user_id => 101})
  [200, {"Content-Type" => "application/json"}, response.to_json]
end
事实证明,Pusher iOS项目演示提供了一个带有所需实现的Scripts/auth_server.rb文件。此处记录了安装说明:

def auth
  response = Pusher[params[:channel_name]].authenticate(params[:socket_id], {:user_id => 101})
  [200, {"Content-Type" => "application/json"}, response.to_json]
end