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/

相关文章:

ruby-on-rails - 使用 HTTParty 解析 HTTP header 'set-cookie'

ruby-on-rails - CouchRest 模型使用自定义值而不是 _id 字段的 guid

ruby 面试题

javascript - 如何将一个大网址变成一个带有附加参数的较小网址?

Javascript 搜索数组列表的数组

ruby-on-rails - 使用设计在 Rails 3.1 和 2.3.12 之间共享 session

ruby-on-rails - Rails 中数字的本地化

ruby-on-rails - Capistrano:deploy.rb 文件重构

javascript - 未捕获的语法错误 : Unexpected token h error for json option passed as param to a function

javascript - 从 AJAX 获取原始 HTTP 响应