2017-02-13 55 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 –

相關問題