javascript - 在 Javascript 文件中使用 Ruby/Rails 代码

标签 javascript ruby-on-rails-3

我在一个界面中工作,它需要来 self 创建的视频模型的信息。这意味着我将需要执行一个 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

最佳答案

在您的 View 中(视频/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");
    }

}

关于javascript - 在 Javascript 文件中使用 Ruby/Rails 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11136494/

相关文章:

ruby-on-rails - Rails 3 灵活的 CMS 框架

javascript - onPress 在 iOS 设备的菜单中不起作用

javascript - 如何监视 jQuery AJAX 请求?

ruby-on-rails - 如何用 bootstrap 的模态显示 'Delete Confirm Dialog' ?不像浏览器的默认设置

ruby - omn​​iauth 0.2.3 invalid_credentials

ruby-on-rails - Ruby on Rails - 路由 - 跳出 URL

ruby-on-rails - 记录回溯、rescue_from 和自定义错误页面

javascript - Angular 1 中的响应式源图像,好还是坏?

javascript - 用数组嵌套 d3.max

javascript - 下拉列表中选定的值无效 : Failed to set selected value