Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails ajax error while creating

Hello guys I want use ajax in my rails application : Here is my routes.rb file

ExampleAjax::Application.routes.draw do
   root 'users#index'
    resources :users
end

my controller file

class UsersController < ApplicationController
 def index
    @users = User.all
    @user = User.new
  end
 def create
  @user = User.new(user_params)

  respond_to do |format|
    if @user.save
      format.html { redirect_to @user, notice: 'User was successfully created.' }
      format.js   {}
      format.json { render json: @user, status: :created, location: @user }
    else
      format.html { render action: "new" }
      format.json { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end

private 
def user_params
    params.require(:user).permit(:fname)
end
end

My view files index.html.erb

<b>Users</b>

<ul id="users">
<% @users.each do |user| %>
  <%= render user %>
<% end %>
</ul>

<br>

<%= form_for(@user, remote: true) do |f| %>
  <%= f.label :fname %><br>
  <%= f.text_field :fname %>
  <%= f.submit %>
<% end %>

new.html.erb

<%=form_for(@user, remote: true) do |f|%>
    <p>
        <%= f.label :fname %><br>
        <%= f.text_field :fname %>
    </p>
    <p>
        <%= f.label :lname %><br>
        <%= f.text_field :lname %>
    </p>
    <p>
        <%= f.submit %>
    </p>
<% end %>

_user.html.erb

<li><%= user.fname %></li>

_create.js.erb

$("<%= escape_javascript(render @user) %>").appendTo("#users");

And my problem is when I click create user I got the following error in console

POST http://localhost:3000/users 500 (Internal Server Error) 

1 Answers

Your code is hitting this block:

format.js   {}

Which has nothing defined in it, so your app will try to do what it normally does, ie. render the view for the action you are in.

You are in a create action, and your format is js, so it will try to render create.js.erb.

You should rename your _create.js.erb to remove the underscore.

like image 189
sevenseacat Avatar answered Aug 29 '26 20:08

sevenseacat



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!