事情是这个样子。我有一个 Contract model,里面有个 status 我在一个 erb 文件中,写入
<script>
function post_approve()
{
x = document.getElementById("approve");
x.innerHTML="<% @post.update_attribute( :status , 3) %>";
window.location.reload();
}
function post_approve()
{
x = document.getElementById("reject");
x.innerHTML="<% @post.update_attribute( :status , 4) %>";
window.location.reload();
}
</script>
<button type="button" class="btn btn-primary" onclick= "post_approve()">审批通过</button>
<button type="button" class="btn btn-primary" onclick= "post_reject()">拒绝通过</button>
<div id="reject"></div>
<div id="approve"></div>
当我,在浏览器中载入时,我什么都还没有做,status 的值就被设置成了 4.当我删掉 function post_approve() 这个函数之后,加载页面时,status 就被直接复制成了 3. 从现象上看,就是,程序直接执行了<% %>里面的内容。 问题 1. 是不是 ERB 文件一定会按顺序执行所有的<%%>里面的 ruby 代码?【即使,是在一个 JS function 里面的】 问题 2.我该怎么实现,我想要的功能。点击一个按钮,程序会执行一段 ruby 代码,对一个 model 进行修改。