Ruby 获取呈现参数错误:正确的语法或用法是什么?
我不熟悉Ruby、Sinatra和Pusher,所以这是一个基本问题。我正在尝试验证Pusher客户端(使用iOS演示代码)。当iOS客户端尝试加入状态通道时,以下服务器代码失败并出错: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'
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