Reputation: 1264
I did a simple rails form with two user inputs , name and email. I'm using rails 3.1, so I used :remote => true
in my form_for
tag. I also created a create.js.erb
and added corresponding format.js
in the users_controller.rb
.
I added the following lines in create.js.erb
$(document).ready(function(){
$('body').html("<h1>Registration Successful</h1>")
});
Now the problem is that when I click the submit button, with empty fields, it does not show validations error messages that I have added in the user.rb
model file. Instead, it will show me registration successful
message.
Is there some easy way to circumvent this problems in rails. Also please note that I'm very bad at javascript, so please be nice to me.
controller code for create
def create
@user = User.new(params[:user])
respond_to do |format|
if @user.save
#UserMailer.registration_confirmation(@user).deliver
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.js
else
format.html { render action: "new" }
format.js
end
end
end
Upvotes: 0
Views: 228
Reputation: 84150
The reason it doesn't show the errors is because you are not telling it to, you are simply telling it to write "Registration Successful". You could try:
<% @user.errors.full_messages.each do |error| %>
$('body').prepend("<h1><%=error%></h1>");
<% end %>
This assumes that your controller has the following or something similar:
@user = User.create(params[:user])
Hopefully this is enough to get you started. If not, some controller code will be required to help further.
Upvotes: 1