我正在关注一个类项目的 twitter 教程,但我被困在教程使用 PUBNUB 的部分。我收到以下错误:
Showing C:/RubyProjects/twitter/app/views/layouts/application.html.erb where line #93 raised:
**wrong number of arguments(1 for 0)**
Extracted source (around line #93):
PUBNUB.subscribe({
channel : "<%= Digest::SHA1.hexdigest(current_user.username, current_user.created_at) %>",
callback : function(message) { updateTimeline(message) }
我在 stackoverflow 上发现,发现 EventMachine 帮助了一些人,我试过了,但仍然没有 :(
我检查了 Github 上的 PUBNUB 页面,发现它改变了通道和回调的编写方式,所以我尝试这样做,但它也没有帮助。关于错误数量的参数(1 代表 0),我仍然遇到同样的错误。
通知.rb
class Notify
def self.deliver_message_to_user(params)
post = Post.find(params[:post_id])
user = User.find(params[:user_id])
user.channel ||= Channel.new(
:channel_ident =>
Digest::SHA1.hexdigest(user.username, user.created_at.to_s))
Pubnub.publish({
:channel => user.channel.channel_ident,
:message => post.to_json(:include => :user)
})
end
end
应用程序.html.erb
<script>
function updateTimeline(message) {
var html = JST['post'](jQuery.parseJSON(message));
$('#timeline').prepend(html);
}
Pubnub.subscribe({
:channel => "<%= Digest::SHA1.hexdigest(current_user.username, current_user.created_at) %>",
:callback => function(message) { updateTimeline(message) }
})
</script>
我在我的 application.rb 文件中放入了require 'digest',但它仍然没有帮助。可能是语法吗?如果是,我不确定正确的语法是什么。