Rails 3:未定义的方法`remote_form_for'

时间:2010-10-08 12:10:16

标签: ruby-on-rails ajax forms haml rails-3-upgrade

我在HAML中有一个相当简单的Rails远程表单,部分在共享/用户之下:

- remote_form_for :user, :url => { :controller => "users", :action => "create" } do |f|
  .field
    = f.label :name, t('name')
    = f.text_field :name
  .field
    = f.label :email, t('email')
    = f.text_field :email
  .actions
    = f.submit

无论我多么愚弄它,这都行不通。我总是得到以下错误:

undefined method `remote_form_for' for #<#<Class:0x1036e8e40>:0x1036dfd90>

我做了些蠢事吗?它与form_for完美配合。

2 个答案:

答案 0 :(得分:23)

remote_form_for不再存在。

尝试添加

:remote => true

作为form_for的选项

form_for :user, :remote => true, :url => { :controller => "users", :action => "create" } do |f|

请参阅: http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for

答案 1 :(得分:1)

这是因为这个方法在Rails 3上被删除

立即使用

form_for ..., :remote => true

您的代码变为:

- form_for :user, :url => { :controller => "users", :action => "create" }, :remote => true do |f|
  .field
    = f.label :name, t('name')
    = f.text_field :name
  .field
    = f.label :email, t('email')
    = f.text_field :email
  .actions
    = f.submit

你需要rails.jquery.js或原型中的相同才能使用它。这是UJS在轨道上的改进。