Ruby on rails Rails引导模式客户端验证
我有一个ajax引导模式:Ruby on rails Rails引导模式客户端验证,ruby-on-rails,ajax,Ruby On Rails,Ajax,我有一个ajax引导模式: <%= link_to 'Question', new_question_path, remote: true, class: 'btn btn-info' %> 我在模型内部进行了验证:验证的长度为:content,最大值为:70 对于验证错误,我使用以下两个gem: gem 'client_side_validations' gem 'client_side_validations-simple_form' 模式出现,如果我提交的表格少于70个字
<%= link_to 'Question', new_question_path, remote: true, class: 'btn btn-info' %>
我在模型内部进行了验证:验证的长度为:content,最大值为:70
对于验证错误,我使用以下两个gem:
gem 'client_side_validations'
gem 'client_side_validations-simple_form'
模式出现,如果我提交的表格少于70个字符,问题就会产生。但另一方面,如果我输入超过70个字符,验证错误就会出现,并且会发生一些奇怪的事情。。。如果我键入并重新提交少于70个字符的表单,它将继续给我验证错误,并且不允许我提交表单。我可能错过了一些东西。。。那么,关于如何解决这个问题有什么想法吗
更新
好吧,我试过这个。。。。我在控制器创建方法中添加了感叹号:if@question.save代码>并且我在控制台得到验证错误。验证错误根本不会出现在模态上。然后当我试图提交少于70个字符的表单时,它就通过了。所以从我的理解来看,两颗宝石的设置有问题。谁能帮点忙吗
(0.2ms) ROLLBACK
↳ app/controllers/questions_controller.rb:14
Completed 422 Unprocessable Entity in 10ms (ActiveRecord: 1.6ms)
ActiveRecord::RecordInvalid (Validation failed: Content is too long (maximum is 70 characters)):
我需要把这个放在我的模型里:
<div id="formModal">
<%= render partial: 'layouts/messages' %>
</div>
这里面有create.js.erb
$("#formModal").html("<%= escape_javascript(render partial: 'layouts/messages') %>");
$(“#formModal”).html(“”);
我需要把它放在我的模型中:
<div id="formModal">
<%= render partial: 'layouts/messages' %>
</div>
这里面有create.js.erb
$("#formModal").html("<%= escape_javascript(render partial: 'layouts/messages') %>");
$(“#formModal”).html(“”);
验证是由javascript执行的吗?感谢@Rodrigo的回复,验证通过我上面提到的两个gem工作,是的,我相信gems使用的是javascript。你可以打开Dev Tools的Network选项卡查看这一点,并查找AJAX请求。或者只需查看rails服务器日志,查看是否有任何请求被发出curl'https://localhost:3000/assets/rails.validations.self-7ede4f32d93d43f53836b343c720442683029575668acd0fe95f2905b4fdb43f.js?主体=1'\-XGET
验证是由javascript执行的吗?感谢@Rodrigo的回复,验证通过我上面提到的两个gem工作,是的,我相信gems使用的是javascript。你可以打开Dev Tools的Network选项卡查看这一点,并查找AJAX请求。或者只需查看rails服务器日志,查看是否有任何请求被发出curl'https://localhost:3000/assets/rails.validations.self-7ede4f32d93d43f53836b343c720442683029575668acd0fe95f2905b4fdb43f.js?主体=1'\-XGET
def create
@question = Question.new(question_params)
respond_to do |format|
if @question.save
flash.now[:success] = "Question was successfully sent!"
format.js { render 'create.js.erb' }
else
flash.now[:alert] = "Something went wrong!"
format.js { render 'create.js.erb' }
end
end
end
$("#formModal").html("<%= escape_javascript(render partial: 'layouts/messages') %>");