1

私が作成したビデオ モデルからの情報を必要とするインターフェイスで作業しています。つまり、必要な情報を取得するには、MySQL クエリを実行する必要があります。私のコードは、私のinterface.js.erbファイルでは次のとおりです。

...
    function play_vid()
    {
        low_fps = '<%= @video.low_fps %>' ;
        alert(low_fps); //checking
        if(low_vid.paused){
            low_vid.play();
            play_icon.classList.remove("icon-play-circle");
            play_icon.classList.add("icon-pause");
        }else{
            low_vid.pause();
            play_icon.classList.remove("icon-pause");
            play_icon.classList.add("icon-play-circle");
        }

    }
...

上記のコードは私にこれを返します:

NoMethodError in Videos#show

Showing /home/user/My Projects/Ruby Projects/Video_APP/app/views/layouts/application.html.erb where line #8 raised:

undefined method `low_fps' for nil:NilClass
  (in /home/user/My Projects/Ruby Projects/Video_APP/app/assets/javascripts/jQuery/interface.js.erb)

Extracted source (around line #8):

5:   <%= stylesheet_link_tag    "application", :media => "all" %>
6:   <%= javascript_include_tag "jQuery/jquery-1.7.2.min.js" %>
7:   <%= javascript_include_tag "jQuery/jquery-ui-1.8.21.custom.min.js" %> 
8:   <%= javascript_include_tag "application.js" %>
9:   <%= javascript_include_tag "bootstrap-dropdown.js" %>
10:   <%= javascript_include_tag "jQuery/interface.js.erb" %>  
11:   <%= javascript_include_tag "jQuery/events_controls.js" %>  

通常の *.js ファイルを使用する必要がありますか? 主な違いは何ですか? 問題を解決するにはどうすればよいですか?

編集:

  # GET /videos/1
  # GET /videos/1.json
  def show
    @video = Video.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @video }
    end
  end
4

1 に答える 1

2

(videos / show.html.erb?)を表示して、次の手順を実行してみてください

<div id="video" data-lowfps="<%= @video.low_fps %>"></div>

次に、JS関数を変更します。

function play_vid()
{
    low_fps = $('#video').data('lowfps');
    alert(low_fps); //checking
    if(low_vid.paused){
        low_vid.play();
        play_icon.classList.remove("icon-play-circle");
        play_icon.classList.add("icon-pause");
    }else{
        low_vid.pause();
        play_icon.classList.remove("icon-pause");
        play_icon.classList.add("icon-play-circle");
    }

}
于 2012-06-21T11:20:29.820 に答える