在布局上:false丢失client_side_validations属性

时间:2013-07-09 19:45:11

标签: ruby-on-rails-3

我使用jquery在click上进行部分渲染。这是它的代码

$('.actCell').click(function (){
    alert('Load was performed.');
    $.get('/policies/new', function(data) {
        $('.policyAddForm').html(data);

    });
});

这是控制器代码

 def new
    @policy = Policy.new
    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @policy }
    end
 end

这是我的application.html

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>Passport</title>
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width">

  <%= stylesheet_link_tag "application", :media => "all" %>

</head>
<body>


<div class="header">
  <div class="container">
    <img src="/assets/ph_logo.png">
    <div class="user"><%=current_user.email%> <div class="userDrop"></div></div>
    <div class="userDropMenu">
      <div class="userActRow">change password</div>
      <div class="userActRow">sign out</div>
    </div>
  </div>
</div>

<div class="nav">
  <div class="container">
    <%= yield %>
  </div>
</div>

<%= javascript_include_tag "application" %>
<%= yield :javascript %>

</body>
</html>

使用上面的代码问题是我的布局搞砸了。我更新了部分表单显示标题,因此它是布局中的布局,但我的client_validation_gem属性工作。一旦我说布局错误我的布局问题得到解决但我丢失了client_side_validation gem属性。我不知道是什么问题,我真的很沮丧。任何帮助或指导都会非常有帮助。谢谢,

2 个答案:

答案 0 :(得分:0)

如果您使用rails.validations,您似乎未加载rails.validations.customlayout: false js文件。您可能必须将它们包含在部分内容中(类似这样)。

= javascript_include_tag 'rails.validations'

修改

刚看到您正在动态添加表单。在添加表单后,您还需要触发这样的客户端验证:

$('form[data-validate]').validate();

答案 1 :(得分:0)

最后我想通了。我必须删除rails.validations.js文件,因为它已过时。并添加'$('form [data-validate]')。validate();'以@David建议的js文件。谢谢你的帮助