RoR web应用程序中的javascript代码放在哪里?

RoR web应用程序中的javascript代码放在哪里?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我是网络开发新手,所以我认为这个问题对你们很多人来说很简单,但对我来说很难 在我的页面上,我有1000多行js,我可以将其分为3种类型: 1.其中我定义了全局变量,并向后端询问初始数据: var charts_data = #{@object.charts_data}; var max_height = #{@object.max}; var min_height = #{@object.min}; var param_from = #{params[:f].nil? ? -1 : para

我是网络开发新手,所以我认为这个问题对你们很多人来说很简单,但对我来说很难

在我的页面上,我有1000多行js,我可以将其分为3种类型:

1.其中我定义了全局变量,并向后端询问初始数据:

var charts_data = #{@object.charts_data};

var max_height = #{@object.max};
var min_height = #{@object.min};

var param_from = #{params[:f].nil? ? -1 : params[:f]};
var param_to = #{params[:t].nil? ? -1 : params[:t]};
2.其中我定义了一些与当前页面无关的支持函数(helpers),即数组:

function clone(obj) {
  if (null == obj || "object" != typeof obj) return obj;
  var copy = obj.constructor();
  for (var attr in obj) {
    if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]);
  }
  return copy;
}
3.与当前页面相关的功能,使用基于页面元素的选择器,即:

$('#range-from, #range-to').keypress(function (e) {
  //if the letter is not digit then display error and don't type anything
  if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
    return false;
  }
});
$('#范围从,#范围到')。按键(功能(e){
//如果字母不是数字,则显示错误,不键入任何内容
如果(e.which!=8&&e.which!=0&&e.which<48 | e.which>57)){
返回false;
}
});

你们能帮我从js中清除我的视图,并将其正确分割并放入另一个文件吗?

我自己不是RoR专家,但可能会这样开始

这一切似乎都与视图相关,因此在我看来,它属于rails给定的帮助器模块

您的第一个块似乎与页面无关,因此它可能会在ApplicationHelper中找到空间。 您的第二个块(与特定页面相关)将完全适合其页面助手。 我将存储在页面相关js文件中的第三个文件(在“资产”->“javascripts”下查找)


…也许有更好的解决方案,但像这样,你应该得到很好的解决

我自己也不是RoR专家,但我可能会这样开始

这一切似乎都与视图相关,因此在我看来,它属于rails给定的帮助器模块

您的第一个块似乎与页面无关,因此它可能会在ApplicationHelper中找到空间。 您的第二个块(与特定页面相关)将完全适合其页面助手。 我将存储在页面相关js文件中的第三个文件(在“资产”->“javascripts”下查找)


…也许有更好的解决方案,但像这样,你应该得到很好的解决

我自己也不是RoR专家,但我可能会这样开始

这一切似乎都与视图相关,因此在我看来,它属于rails给定的帮助器模块

您的第一个块似乎与页面无关,因此它可能会在ApplicationHelper中找到空间。 您的第二个块(与特定页面相关)将完全适合其页面助手。 我将存储在页面相关js文件中的第三个文件(在“资产”->“javascripts”下查找)


…也许有更好的解决方案,但像这样,你应该得到很好的解决

我自己也不是RoR专家,但我可能会这样开始

这一切似乎都与视图相关,因此在我看来,它属于rails给定的帮助器模块

您的第一个块似乎与页面无关,因此它可能会在ApplicationHelper中找到空间。 您的第二个块(与特定页面相关)将完全适合其页面助手。 我将存储在页面相关js文件中的第三个文件(在“资产”->“javascripts”下查找)


…也许有更好的解决方案,但像这样,你应该得到很好的解决

我建议您使用angularJS(JS框架)来组织JS。我在RoR项目中使用它


查看此页面:

我建议您使用angularJS(JS框架)来组织JS。我在RoR项目中使用它


查看此页面:

我建议您使用angularJS(JS框架)来组织JS。我在RoR项目中使用它


查看此页面:

我建议您使用angularJS(JS框架)来组织JS。我在RoR项目中使用它


查看此页面:

在Rails中管理javascript是一个偏好问题。假设一个项目只依赖于
jQuery
,那么我会将代码分为三个级别

  • 应用程序布局,其中必须定义后端因变量
  • 一些通用的.js文件,用于存储跨控制器的通用代码
  • 代码只针对一个/几个视图,因此不需要始终加载
  • 在Rails中,每个Javascript代码都转到
    app/assets/javascripts
    (至少从版本3.2开始)。这棵树可能看起来像:

    .
    | application.js 
    | common.js
    | users
    |      \ new.js
    |      \ index.js
    | ...
    
    application.js
    仅定义与应用程序相关的库的要求,例如
    jQuery
    common.js
    包含应用程序的通用代码,
    users/new.js
    仅包含特定于该特定视图的代码。要使用这种代码存储方法,需要告诉Rails必须为特定视图加载特定文件。可通过以下方式完成:

    # application layout:
    <body>
    ...
    ...
    <%= yield :additional_javasript %>
    </body>
    
    # users/new.html.erb:
    <% content_for :additional_javasript do %>
      ...
    <% end %>
    
    #应用程序布局:
    ...
    ...
    #users/new.html.erb:
    ...
    
    在Rails中管理javascript是一种偏好。假设一个项目只依赖于
    jQuery
    ,那么我会将代码分为三个级别

  • 应用程序布局,其中必须定义后端因变量
  • 一些通用的.js文件,用于存储跨控制器的通用代码
  • 代码只针对一个/几个视图,因此不需要始终加载
  • 在Rails中,每个Javascript代码都转到
    app/assets/javascripts
    (至少从版本3.2开始)。这棵树可能看起来像:

    .
    | application.js 
    | common.js
    | users
    |      \ new.js
    |      \ index.js
    | ...
    
    application.js
    仅定义与应用程序相关的库的要求,例如
    jQuery
    common.js
    包含应用程序的通用代码,
    users/new.js
    仅包含特定于该特定视图的代码。要使用这种代码存储方法,需要告诉Rails必须为特定视图加载特定文件。可通过以下方式完成:

    # application layout:
    <body>
    ...
    ...
    <%= yield :additional_javasript %>
    </body>
    
    # users/new.html.erb:
    <% content_for :additional_javasript do %>
      ...
    <% end %>
    
    #应用程序布局:
    ...
    ...
    #users/new.html.erb:
    ...
    
    在Rails中管理javascript是一种偏好。假设一个项目只依赖于
    jQuery
    ,那么我会将代码分为三个级别

  • 应用程序布局,其中必须定义后端因变量
  • 一些常见的.js文件