Why isn't my Create Form working, or even responding?

Donnovan

So I'm using form_with, and my code is placed in views/users/new.html.erb

<% content_for :title, "Sign Up" %>
<% if @user.errors.any? %>
  <div id="error_explanation">
    <h2>
      <%= pluralize(@user.errors.count, "error") %>
      prohibited this user from being saved:
    </h2>

    <ul>
    <% @user.errors.full_messages.each do |msg| %>
      <li><%= msg %></li>
    <% end %>
    </ul>
  </div>
<% end %>

<%= form_with model: @user do |f| %>

  <%= f.label :email %>
  <%= f.email_field :email, :placeholder => 'E-mail address' %><br>

  <%= f.label :password %>
  <%= f.password_field :password, :placeholder => 'Password' %>

  <%= f.label :password_confirmation %>
  <%= f.password_field :password_confirmation, :placeholder => 'Password confirmation' %><br>

  <label>Are you a cleaner or customer?</label>
  <%= f.select :user, User::SUB_CLASSES, include_blank: true %><br>

  <%= f.submit "Next" %>
<% end %>

My controller has the following code

  def new
    @user = User.new
    render :layout => "beforelogin"
  end

  def create
    @user = User.new(user_params)
    if @user.save
      session[:user_id] = @user.id
      if @user.sub_class == "Cleaner"
        redirect_to new_cleaner_path
      else
        redirect_to new_customer_path
      end
    else
      render :new
      flash[:alert] = "Your registration could not be completed"
    end
  end

Now when I fill out the form on the user/new.html.erb route, nothing happens. The button just clicks. No errors pop up. I even tried to add to the top of the form, <%= form_with model: @user, url: users_path, method: "post" do |f| %>. Still the same response.

Sohail Aslam

By default form_with attaches the data-remote attribute to the form. As a consequence, the form will be submitted using Ajax.

In case you want to disable this feature, you need to set the option local to true.

like this:

<%= form_with model: @user, local: true do |f| %>

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related