Подтвердить что ты не робот

Как генерировать AuthenticityToken на рельсах

Я создаю тег формы самостоятельно, когда я отправляю форму на сервер, он дает мне ошибку InvalidAuthenticityToken, поэтому я хочу знать, как добавить ее в мою собственную в текущей ситуации        

      

    

     

       

 ActionController::InvalidAuthenticityToken in CropsController#update 


ActionController::InvalidAuthenticityToken

Rails.root: /home/mlzboy/my/crop2
Application Trace | Framework Trace | Full Trace
4b9b3361

Ответ 1

Существует помощник вида form_authenticity_token, который возвращает токен аутентификации текущего сеанса.

В вашем view.html.erb:

 <form action="/blah" method="POST">
   <input name="authenticity_token" value="<%= form_authenticity_token %>" type="hidden">
   <input name="first_name" type="text">
 </form>

Ответ 2

Этот ответ сначала для тегов токенов rails в Google, чтобы упростить для будущих поколений Google: просто используйте token_tag, это помощник, определенный в ActionView::Helpers::UrlHelper, который возвращает скрытый ввод с form_authenticity_token в качестве значения по умолчанию.

Ответ 3

Это то, что я сделал, и это сработало:

  <form action="/users/sign_in" method="post" accept-charset="UTF-8" class="login-form new_user" id="new_user">
    <input name="utf8" type="hidden" value="&#x2713;" />
    <input name="authenticity_token" value="<%= form_authenticity_token %>" type="hidden">
    <label for="user_email">
        <span>Email:</span>
        <input autofocus="autofocus" type="email" name="user[email]" id="user_email" required />
    </label>
    <label for="user_remember_me">
        <span>Password:</span>
        <input autocomplete="off" type="password" name="user[password]" id="user_password" required />
    </label>
    <a href="#" class="forgot-password-link">Forgot your password?</a>
    <button type="submit" class="btn btn-primary submit">Log In</button>
</form>