admin管理员组

文章数量:1023009

I am trying to add custom JS to my Rails 7 project. I followed the instructions on this StackOverflow answer.

But I'm still not able to use custom JS in my view.

Here is my main.js:

function sayHi() {
    console.log("hi");
}

window.sayHi = sayHi;

Here is my view (index.html.erb):

<div>
  <button type="button" onclick="sayHi()">Click Me!</button>
</div>

When I click the button, in the console it just says:

Uncaught ReferenceError: sayHi is not defined

I'm really not sure how to access the custom JS from my view.

Here is a link to my project I uploaded to DropBox.

I am trying to add custom JS to my Rails 7 project. I followed the instructions on this StackOverflow answer.

But I'm still not able to use custom JS in my view.

Here is my main.js:

function sayHi() {
    console.log("hi");
}

window.sayHi = sayHi;

Here is my view (index.html.erb):

<div>
  <button type="button" onclick="sayHi()">Click Me!</button>
</div>

When I click the button, in the console it just says:

Uncaught ReferenceError: sayHi is not defined

I'm really not sure how to access the custom JS from my view.

Here is a link to my project I uploaded to DropBox.

Share Improve this question edited Dec 11, 2022 at 14:06 Slaknation asked Dec 9, 2022 at 23:29 SlaknationSlaknation 1,9364 gold badges28 silver badges48 bronze badges 1
  • 2 Better solution - just stop writing JS like its 2005 and attach an event handler. You'll thank me later. – max Commented Dec 11, 2022 at 8:39
Add a ment  | 

3 Answers 3

Reset to default 4

So I am going to post this as a plete answer to anyone who wants to add javascript to their Rails 7 project:

  1. Create your custom JS file in app/javascript/custom/main.js (or whatever file name you like):

    function sayHi() {
        console.log("hi");
    }
    
    window.sayHi = sayHi;  // You must have this to expose your functions
    

    (or you can use an event hanlder instead)

  2. Go to config/importmap.rb and add the following:

    pin_all_from "app/javascript/custom", under: "custom"
    
  3. Go to app/javascript/application.js file and add the following:

    import "custom/main"
    
  4. Run In your terminal:

    rails assets:prepile
    
  5. Start your rails server. Voilà

    I am trying to add custom JS to my Rails 7 project. I followed the instructions on this StackOverflow answer.

    But I'm still not able to use custom JS in my view.

    Here is my main.js:

    function sayHi() {
        console.log("hi");
    }
    
    window.sayHi = sayHi;
    

    Here is my view (index.html.erb):

    <div>
      <button type="button" onclick="sayHi()">Click Me!</button>
    </div>
    

    When I click the button, in the console it just says:

    Uncaught ReferenceError: sayHi is not defined
    

    I'm really not sure how to access the custom JS from my view.

    Here is a link to my project I uploaded to DropBox.

    I am trying to add custom JS to my Rails 7 project. I followed the instructions on this StackOverflow answer.

    But I'm still not able to use custom JS in my view.

    Here is my main.js:

    function sayHi() {
        console.log("hi");
    }
    
    window.sayHi = sayHi;
    

    Here is my view (index.html.erb):

    <div>
      <button type="button" onclick="sayHi()">Click Me!</button>
    </div>
    

    When I click the button, in the console it just says:

    Uncaught ReferenceError: sayHi is not defined
    

    I'm really not sure how to access the custom JS from my view.

    Here is a link to my project I uploaded to DropBox.

    Share Improve this question edited Dec 11, 2022 at 14:06 Slaknation asked Dec 9, 2022 at 23:29 SlaknationSlaknation 1,9364 gold badges28 silver badges48 bronze badges 1
    • 2 Better solution - just stop writing JS like its 2005 and attach an event handler. You'll thank me later. – max Commented Dec 11, 2022 at 8:39
    Add a ment  | 

    3 Answers 3

    Reset to default 4

    So I am going to post this as a plete answer to anyone who wants to add javascript to their Rails 7 project:

    1. Create your custom JS file in app/javascript/custom/main.js (or whatever file name you like):

      function sayHi() {
          console.log("hi");
      }
      
      window.sayHi = sayHi;  // You must have this to expose your functions
      

      (or you can use an event hanlder instead)

    2. Go to config/importmap.rb and add the following:

      pin_all_from "app/javascript/custom", under: "custom"
      
    3. Go to app/javascript/application.js file and add the following:

      import "custom/main"
      
    4. Run In your terminal:

      rails assets:prepile
      
    5. Start your rails server. Voilà

      本文标签: javascriptHow to use custom JS on a Rails 7 viewStack Overflow