我遇到这样的情况:当我单击按钮时,将调用 javascript“showpopupfunc()”,然后需要执行 ROR 方法“addmcf” - 这可能吗?
<button class="button" id="buttonUpload" onclick="showpopupfunc()" > </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/