2015-09-01 3 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 

Любая помощь очень ценится.

Спасибо, Andrew

ответ

2

В блоге пост вы следуете немного устарели. Вероятно, вы сняли последнюю версию «opentok», поэтому вам нужно обновить свой код, чтобы использовать новейший 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

Hi 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