我做了一个简单的rails表单,有两个用户输入,姓名和电子邮件。我使用的是Rails3.1,所以我在form_for
标记中使用了:remote => true
。我还创建了一个create.js.erb
,并在users_controller.rb
中添加了相应的format.js
。
我在create.js.erb
中添加了以下代码行
$(document).ready(function(){
$('body').html("<h1>Registration Successful</h1>")
});
现在的问题是,当我单击submit按钮时,它没有显示我在user.rb
模型文件中添加的验证错误消息。相反,它将向我显示registration successful
消息。
在rails中有什么简单的方法可以绕过这个问题吗?另外请注意,我在javascript方面做得很差,所以请对我好一点。
用于创建的控制器代码
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
发布于 2011-09-25 21:34:13
它没有显示错误的原因是因为你没有告诉它,你只是告诉它写“注册成功”。您可以尝试:
<% @user.errors.full_messages.each do |error| %>
$('body').prepend("<h1><%=error%></h1>");
<% end %>
这假设您的控制器具有以下内容或类似的内容:
@user = User.create(params[:user])
希望这足以让你入门。如果没有,将需要一些控制器代码来提供进一步的帮助。
https://stackoverflow.com/questions/7548735
复制