HTML <form>тег, заставляющий форму Rails отправлять GET вместо запроса POST - PullRequest
3 голосов
/ 17 ноября 2011

У меня есть форма, которая отлично работает, пока я не добавлю теги для стиля (я использую загрузчик Twitter).Приложение Rails 3.1 и я на Mac.Вот форма, которая отлично работает без проблем:

<%= form_for @user do |f| %>
<% if @user.errors.any? %>
  <div class="alert-message error">
    <h2>Form is invalid</h2>
      <ul>
        <% for message in @user.errors.full_messages %>
          <li><%= message %></li>
        <% end %>
      </ul>
  </div>
  <% end %>

  <div class="field">
    <%= f.label :email %>
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %>
    <%= f.password_field :password %>
  </div>
  <div class="field">
    <%= f.label :password_confirmation %>
    <%= f.password_field :password_confirmation %>
  </div>
  <div class="actions"><%= f.submit %></div>
<%end %>

Затем, когда я добавляю тег в точно такую ​​же форму, как эта:

<form class="form-stacked">
<%= form_for @user do |f| %>
<% if @user.errors.any? %>
  <div class="alert-message error">
    <h2>Form is invalid</h2>
      <ul>
        <% for message in @user.errors.full_messages %>
          <li><%= message %></li>
        <% end %>
      </ul>
  </div>
  <% end %>

  <div class="field">
    <%= f.label :email %>
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %>
    <%= f.password_field :password %>
  </div>
  <div class="field">
    <%= f.label :password_confirmation %>
    <%= f.password_field :password_confirmation %>
  </div>
  <div class="actions"><%= f.submit %></div>
<%end %>
</form>

Эта форма, по-видимому, выдаетПОЛУЧИТЬ запрос вместо запроса POST.Вместо того, чтобы перенаправлять меня при сохранении, как это происходит без тега, я вижу это в URL: http://localhost:3000/signup?utf8=%E2%9C%93&authenticity_token=Pt1vOp7lykCPFdj5BJeZ6xwJM2vy0JomMGSKoB%2FyYpU%3D&user%5Bemail%5D=test%40get.com&user%5Bpassword%5D=kevin&user%5Bpassword_confirmation%5D=kevin&commit=Create+User

Я попытался указать post как в rails, так и в HTML.Указание его в рельсах с помощью: method => post дает те же результаты (запрос GET и информация URL выше).Использование в HTML выглядит как запрос POST, но объект User не сохраняется (я верю, что это так, потому что я не перенаправлен на root_url, который установлен в контроллере и работает нормально, когда не используется тег).Есть идеи?

1 Ответ

5 голосов
/ 17 ноября 2011

Вы хотите это:

<%= form_for @user, :html => { :class => "form-stacked", :id => "something" } do |f| %>
  stuff goes in here as before
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...