代码之家  ›  专栏  ›  技术社区  ›  Dave Smylie

带:with选项的in-rails的远程表单

  •  1
  • Dave Smylie  · 技术社区  · 17 年前

    它与link_to_remote一起工作,api文档似乎表明:with应该与任何远程方法一起工作。

    链接到远程(工程):

     = link_to_remote 'ARGH', {:url => {:action => 'load_item', :id => @policy.id} , :with => "'elephant=mouse'"}
    
     <a href="#" onclick="new Ajax.Request('http://localhost:3000/quote_edit/load_item/5', {asynchronous:true, evalScripts:true, parameters:'elephant=mouse' + '&amp;authenticity_token=' + encodeURIComponent('o6whEDZLuq1b1NsuZXIlNjc3iudZNC8jU+ZxgUDXFUk=')}); return false;">arg</a>
    

    远程表单(不工作)

      = remote_form_for :policy, @policy, :url => {:action => 'load_item', :id => @policy.id} , :with => "'elephant=mouse'" do |f|
    
        <form action="http://localhost:3000/quote_edit/load_item/5" method="post" onsubmit="new Ajax.Request('http://localhost:3000/quote_edit/load_item/5', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;">
    

    有人知道如何使用此选项制作远程表单吗?

    parameters:Form.serialize(this) 要从当前表单中提取值?

    干杯

    1 回复  |  直到 16 年前
        1
  •  3
  •   SilentNot    16 年前

    当我想使用javascript计算url的id时,我也遇到了同样的问题。

    研究了源代码并确定远程表单和提交似乎不允许:with语句工作。

    我在表单上使用了一个名为Overrided_id的隐藏字段来解决这个问题。然后在:before选项中,我添加了javascript来设置隐藏字段的值。

    在控制器内部,我在Find中添加了“params[:overrided_id]| | parmam[:id]”,以覆盖传递到url中的默认id。