Rails 3 form_for: remote => true дает мне странную ошибку - PullRequest
0 голосов
/ 04 апреля 2011

Я получаю следующую ошибку:

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"

Я понятия не имею, почему это не работает. У меня есть <% = javascript_include_tag: defaults%> и <% = csrf_meta_tag%> в заголовке, я пробовал form_for с: method =>: get

Я делаю что-то почти такое же в другом месте в моем приложении, и оно отлично работает (я использую меню выбора в этом случае), но в этом случае это фактически изменяет базу данных. В этом случае я просто что-то ищу.

Кто-нибудь может указать мне правильное направление? Спасибо!

1 Ответ

0 голосов
/ 04 апреля 2011

Ну, это было глупо с моей стороны.

Кажется, проблема в том, что у маршрута было то же имя, что и у действия контроллера?Я изменил имя действия контроллера (и путь в form_for), и оно отлично работало.

Argh!

...