【问题标题】:run ruby file from ajax or on button click event从 ajax 或按钮单击事件运行 ruby​​ 文件
【发布时间】:2021-04-06 22:16:09
【问题描述】:

我是红宝石新手。 所以我有 html 代码,其中包括一个输入字段和按钮,当用户单击它时我想要 按钮我必须运行一个具有 system() 方法的 ruby​​ 文件。

index.html


     <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
     </head>
     <body>
        <form method="post" action="/runMethod">
           <input type="text" name="name" value="whatever">
           <input class='btn btn-primary' type='submit' value='click'>
        </form>
     </body>

   

app.rb

 system("wayback_machine_downloader userInput")

这是我的两个文件代码。我只是希望如果我单击按钮 app.rb 文件应该使用给定的输入运行。有可能吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 rubygems ruby-on-rails-5


    【解决方案1】:

    从技术上讲,您可以编写 JS 代码,首先使用 shell 将 ruby​​ 文件作为脚本执行,并且假设计算机已安装 ruby​​,您可以简单地运行如下代码:

    var w = new ActiveXObject("WScript.Shell");
    w.run('ruby Scripts\\test.rb');
    

    但是,这不是一个好方法,因为您不会从执行的文件中获得任何响应或错误消息,这可能会导致一些安全问题,并且您正在前端执行业务逻辑,这总是很糟糕.

    正确的做法是对端点进行ajax调用,您可以在其中控制对信息的访问,在后端设置业务逻辑并给出适当的响应。我不确定你是否在使用 rails,但如果你是,你应该在 routes.rb 中创建一个新路径并为其创建一个控制器方法。

    【讨论】:

      猜你喜欢
      • 2012-03-16
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 2013-11-27
      相关资源
      最近更新 更多