1

是否可以将 :with 选项与 remote_form_for 一起使用?

它适用于 link_to_remote,并且 api 文档似乎表明 :with 应该适用于任何 remote_ 方法。

这是我正在使用的代码,以及它产生的输出:

Link_to_remote(作品):

 = 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(不起作用)

  = 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;">

有谁知道如何让 remote_form_for 选择这个选项?

或者它是否被 remote_form_for 忽略,因为它需要用来parameters:Form.serialize(this)从当前表单中获取值?

干杯戴夫·斯迈利

4

1 回答 1

3

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

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

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

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

于 2010-05-01T12:06:40.220 回答