2017-02-13 45 views
0

我得到这个错误,我试了一下,如果我把“skip_before_filter:verify_authenticity_token”或类似的东西,错误将不会显示,但页面会自动刷新我不希望它刷新。我是新来的铁轨,不知道要解决这个问题,请帮助!Ruby on Rails:PageController中的ActionController :: InvalidAuthenticityToken#insert_table

这是我的HTML

<form id="contactform" method="post"> 
<div class="form-group"> 
<label class=" control-label">prefix</label> 
        <select class="form-control" id="prefix" name="prefix">    
         <option value=""></option> 
         <option value="tmp">tmp</option> 
         <option value="tbl">tbl</option> 
         <option value="ref">ref</option> 
         <option value="client">client</option> 
       </select><br> 

<label class=" control-label">client</label> 
       <select class="form-control" id="client" name="client"> 
         <option value=""></option> 
         <option value="kapow">kapow</option> 
         <option value="perfect_africa">perfect_africa</option> 
         <option value="earth_class_mail">earth_class_mail</option> 
         <option value="amzn_seller">amzn_seller</option> 
       </select> <br>     

</div> 
<div class="form-group"> 
<div class="col-xs-9 col-xs-offset-4"> 
    <input type="file" name="file" id="myFile"> 
       <div id="temp_display"></div><br> 
       <input type="hidden" name="filename" id="my_file_name" value="">   
    <button type="submit" class="btn btn-default" id="concat">Concat</button><br><br> 

</div> 
</div> 
</form> 

这是我的JS

$(document).ready(function() { 
$('#concat').click(function() { 
$('#contactform') 
    .formValidation({ 
    framework: 'bootstrap', 
    icon: { 
     valid: 'glyphicon glyphicon-ok', 
     invalid: 'glyphicon glyphicon-remove', 
     validating: 'glyphicon glyphicon-refresh' 
    }, 
    fields: { 
     prefix: { 
      validators: { 
       notEmpty: { 
        message: 'The prefix is required' 
       }, 
      } 
     }, 
      client: { 
      validators: { 
       notEmpty: { 
        message: 'The client is required' 
       }, 
      } 
     }      
    } 
    }); 
}); 
}); 

这是我的控制器

class PageController < ApplicationController 

before_action :authenticate_user!, only: [:index] 

def home 
end 

def insert_table 
end 

def create_table 
    helpers.create_table 
end 

def index 
end 

end 

回答

0

你有几件事情,似乎是关:

  1. 的InvalidAuthenticityToken错误 - 这表明了,因为你用一个POST请求,将数据发送到服务器,但不通过由轨道需要POSTPUT操作authenticity_token参数。如果你不想让表单实际提交,那么你不必在这里担心。

  2. 页面刷新的原因是因为提交表单的submit按钮的默认click事件。为了防止这种情况,你必须调整事件处理

$('#concat').click(function (e) {e.preventDefault() ... })

这将覆盖submit按钮的默认行为。

+0

谢谢@Kkulikovskis –

相关问题