javascript - 如何在 ruby​​ on Rails 中从 java 脚本调用 ROR 方法?

标签 javascript ruby-on-rails ruby ruby-on-rails-3

我遇到这样的情况:当我单击按钮时,将调用 javascript“showpopupfunc()”,然后需要执行 ROR 方法“addmcf” - 这可能吗?

<button class="button" id="buttonUpload" onclick="showpopupfunc()" >&nbsp;</button>

<script>
        function ajaxFileUpload()
        {
            $j.ajaxFileUpload
            (
                {
                    url:'/ptcgeodatabase',
                    secureuri:false,
                    fileElementId:'fileToUpload',
                    dataType: 'json',
                    success: function (data, status)
                    {
                        if(typeof(data.error) != 'undefined')
                        {
                            if(data.error != '')
                            {
                                alert(data.error);
                            }else
                            {
                                alert(data.msg);
                            }
                        }
                    },
                    error: function (data, status, e)
                    {
                        alert(e);
                    }
                }
            )
            return false;
        }

        function showpopupfunc()
        {
            **window.location="http://127.0.0.1:3006/ptcgeodatabase#addmcf"**
            showPopWin2('processing', 200, 70, null);
            setConfirmUnload(false);


            ajaxFileUpload();
        }
        function addFiles(selectObject, seltext, selvalue)
        {   
            var optionObject = new Option(seltext,selvalue);
            var optionRank = document.getElementById("mcffiles").options.length;
            if(optionRank <= 9)
            {
                document.getElementById("mcffiles").options[optionRank]= optionObject;
            }
            else
               alert('Only 9 files can select')
        }   
        </script>

Controller :

def addmcf
# i am doing some operation
 @path=RAILS_ROOT.to_s+"/tmp/upload"
      @mcfdir=Dir[@path+"/*"]
      @x=''
      for i in 0..(@mcfdir.length-1)
        @x=@x+@mcfdir[i].to_s+'|'
      end
end

最佳答案

您可以使用 HTTP 请求(例如 AJAX 请求)访问 URL,该 URL 将执行相应 Controller 操作中的代码。

例如,使用默认路由 http://127.0.0.1:3006/ptcgeodatabase/addmcf

应执行 PTCGeoDatabaseController#addcmf

(大写可能不同,结果取决于定义的路线。)

关于javascript - 如何在 ruby​​ on Rails 中从 java 脚本调用 ROR 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624780/

相关文章:

javascript - 如何使用 javascript 从网站提取数据。

javascript - 当 AngularJS 返回 $http 结果时如何隐藏或显示菜单项

javascript - 这是一种确定对象是否为 JavaScript 数组的可接受方法吗?

html - 如何在 Rails 中没有模型的情况下使用 date_select 表单助手?

ruby - 如何重构这段查找 Unix 时间结束的代码?

javascript - 如何最好地编写重叠的 html 按钮

ruby-on-rails - 如何在 gem 中扩展 ApplicationController?

ruby-on-rails - 通过 sftp 进行 cap 部署上传失败

Ruby/Sinatra send_file 不工作

ruby-on-rails - 使用 ActiveAdmin 复制资源选项卡