使用Rails,如何在应用程序中的特定页面上执行javascript文件?

使用Rails,如何在应用程序中的特定页面上执行javascript文件?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我正在尝试将javascript文件加载到rails应用程序中,但仅针对应用程序中的特定页面,而不是主页。如何使用rails加载特定页面的javascript文件 我现在拥有的javascript位于assets/javascript中的programs.js中,如下所示: document.addEventListener('DOMContentLoaded', (event) => { let program = document.getElementsByClassName('pr

我正在尝试将javascript文件加载到rails应用程序中,但仅针对应用程序中的特定页面,而不是主页。如何使用rails加载特定页面的javascript文件

我现在拥有的javascript位于assets/javascript中的programs.js中,如下所示:

document.addEventListener('DOMContentLoaded', (event) => {
 let program = document.getElementsByClassName('program-name')
 console.log(program)
 })

同样,代码本身工作正常。问题是它是针对主页执行的,而不是针对我希望它执行的任何特定页面。如何让代码在rails应用程序中的特定页面上执行?

为什么不将javascript标记添加到要运行它的视图中

如果您想提高渲染速度,可以在布局中添加一个页面结束屈服,然后在视图中指定javascript,如下所示:

document.addEventListener('DOMContentLoaded', (event) => {
 let program = document.getElementsByClassName('program-name')
 console.log(program)
 })
布局/application.html.erb

...
查看/../index.html.erb

...
document.addEventListener('DOMContentLoaded',(事件)=>{
让程序=document.getElementsByClassName('program-name')
console.log(程序)
});

为什么不将javascript标记添加到要在其上运行的视图中

如果您想提高渲染速度,可以在布局中添加一个页面结束屈服,然后在视图中指定javascript,如下所示:

document.addEventListener('DOMContentLoaded', (event) => {
 let program = document.getElementsByClassName('program-name')
 console.log(program)
 })
布局/application.html.erb

...
查看/../index.html.erb

...
document.addEventListener('DOMContentLoaded',(事件)=>{
让程序=document.getElementsByClassName('program-name')
console.log(程序)
});

另一种方法是执行以下操作:

if($('body').is('.yourcontroller.youraction'){
  // Do something
}
app/views/layouts/application.html.erb

<body class="<%= controller_name %> <%= action_name %>">
<!-- This will add your page's controller and action as classes, for example, "blog show" -->

另一种方法是执行以下操作:

if($('body').is('.yourcontroller.youraction'){
  // Do something
}
app/views/layouts/application.html.erb

<body class="<%= controller_name %> <%= action_name %>">
<!-- This will add your page's controller and action as classes, for example, "blog show" -->

我没想到!让我try@JonathanReiser我的荣幸!请接受答案,结束问题。我没想到!让我try@JonathanReiser我的荣幸!请接受答案以结束问题。