我正在使用 Rails 的敏捷 Web 开发进入 Ruby on Rails。
我到了你使用的部分:
<%= link_to (image_tag(product.image_url), {:action => :add_to_cart, :id => product}, :method => :post) %>
为了尝试 RESTful,Rails 在每个锚标记上踢掉了这个内联 Javascript
onclick="var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var s = document.createElement('input'); s.setAttribute('type', 'hidden'); s.setAttribute('name', 'authenticity_token'); s.setAttribute('value', 'gegcVQGk3yN/q+SjZehByuyAHiqh5BSZWa4QHZb8DOU='); f.appendChild(s);f.submit();return false;"
现在,我倾向于从不使用:method => :post
,而是编写一些 Prototype JS 之类的东西:
$$('div.entry a').observe('click', postAnchor);
function postAnchor(event) {
// create a form around the anchor
// submit the form with the right product id
}
有没有办法让我的蛋糕也吃掉?在链接上使用:method => :post
,但 Rails 是否会像上面那样踢出一小块 JS?
或者如果你使用:method => :post
,你必须忽略 gobbledy gook?