Rails 3 form_for:remote =>真的给了我一个奇怪的错误

时间:2011-04-04 08:32:49

标签: javascript ruby-on-rails ajax ruby-on-rails-3 rjs

我收到以下错误:

try {
Element.update("status", "This product doesn't exist.");
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('Element.update(\"status\", \"This product doesn\'t exist.\");'); throw e }

我会直接跳到它并给你我的代码:

观点:

<%= form_tag '/product/verify', :remote => true do %>
  <p>
    <%= text_field_tag :search, params[:search] %>
    <%= submit_tag "Search", :name => nil %>
  </p>
<% end %>

<div id="status"></div>

products_controller.rb:

  def verify
    @product = Product.find_by_verification(params[:search])
    render :update do |page|
      if @product == nil
        page.replace_html "status", "This product doesn't exist."
      else
        page.replace_html "status", "This product is #{@product.status}"
      end
    end
  end

的routes.rb

match 'verify', :to => "products#verify"

我不知道为什么这不起作用。我有&lt;%= javascript_include_tag:默认%&gt;和&lt;%= csrf_meta_tag%&gt;在标题中,我尝试使用form_for:method =&gt; :获得

我在我的应用程序的其他地方做了几乎完全相同的事情并且它工作得很好(我在该实例中使用了一个选择菜单),但在这种情况下它实际上是在修改数据库。在这种情况下,我只是在寻找一些东西。

有人能指出我正确的方向吗?谢谢!

1 个答案:

答案 0 :(得分:0)

那对我来说是愚蠢的。

问题似乎是路由与控制器操作同名?我更改了控制器动作名称(以及form_for中的路径),它完美地运行了。

哎呀!