2015-09-01 289 views
0

我真的希望有人能幫助我。我試圖在我已經構建的應用程序上將OpenTok集成到我的Ruby On Rails應用程序上。我已經使用下面的文章來嘗試整合並使其適應我的特定站點。我跟着一步一步指令這裏:https://railsfornovice.wordpress.com/2013/01/01/video-chatting-in-ruby-on-rails/OpenTok Ruby On Rails

我需要幫助,因爲我目前得到的錯誤消息:

uninitialized constant OpenTok::OpenTokSDK 

,看來它不與Tokbox認證。

這裏是我的代碼:

def index 
    @rooms = Room.where(:public => true).order("created_at DESC") 
    @new_room = Room.new 
    end 

    def create 
    session = @opentok.create_session request.remote_addr 
    params[:room][:sessionId] = session.session_id 

    @new_room = Room.new(params[:room]) 

    respond_to do |format| 
     if @new_room.save 
     format.html { redirect_to("/party/"[email protected]_room.id.to_s) } 
     else 
     format.html { render :controller => 'rooms', 
      :action => "index" } 
     end 
    end 
    end 

    def party 
    @room = Room.find(params[:id]) 

    @tok_token = @opentok.generate_token :session_id =>@room.sessionId  
    end 

任何幫助是極大的讚賞。

感謝, 安德魯

回答

2

你是以下這篇博客是有點過時。您可能已經取消了最新版本的'opentok'gem,因此您需要更新您的代碼以使用最新的API。幸運的是,不會有太多的變化,這裏有更新的方法:

def create 
    session = @opentok.create_session 
    params[:room][:sessionId] = session.session_id 

    @new_room = Room.new(params[:room]) 

    respond_to do |format| 
    if @new_room.save 
     format.html { redirect_to(「/party/」[email protected]_room.id.to_s) } 
    else 
     format.html { render :controller => ‘rooms’, :action => 「index」 } 
    end 
    end 
end 

def party 
    @room = Room.find(params[:id]) 

    @tok_token = @opentok.generate_token @room.sessionId 
end 

def config_opentok 
    if @opentok.nil? 
    @opentok = OpenTok::OpenTok.new YOUR_API_KEY, YOUR_SECRET_TOKEN 
    end 
end 

更多參考,看看在OpenTok Ruby SDK README

+0

嗨Ankur,非常感謝!我仍然收到有關該線路的錯誤{ @new_room = Room.new(params [:room])}任何想法? – ActiveLightning

0

{ @new_room = Room.new(params[:room]) },你應該將其更改爲@new_room=Room.new(room_params),並創建一個私有方法像這樣:

def room_params 
    params.require(:room).permit(:name, :public, :sessionId) 
end