Маркер подлинности - это механизм, который rails использует для защиты пользователей от CSRF-атак. Вот хорошее объяснение, взятое из Понимание токена подлинности Rails
Когда пользователь просматривает форму для создания, обновления или уничтожения
ресурс, приложение rails создаст случайный authenticity_token,
сохраните этот токен в сеансе и поместите его в скрытое поле в
форма. Когда пользователь отправляет форму, рельсы будут искать
authenticity_token, сравните его с тем, что хранится в сеансе, и
если они совпадают, запрос может продолжаться.
Таким образом, для любого действия, которое может изменить ваши рельсы модели, необходимо убедиться, что это изменение, созданное вами.
Rails делает это (с помощью form_for
или form_tag
помощников), добавляя этот секретный токен аутентификации в форму с html-тегом, подобным следующему: <input name="authenticity_token" type="hidden" value="Som3Thin10ngAndUGly">
Возвращаясь к вашей проблеме: я никогда не работал с iframes, поэтому я не уверен, что происходит, но я предполагаю, что ваша форма iframe не передает authencity_token. Если это так, решение простое, просто добавьте скрытый ввод, подобный приведенному выше, и используйте метод form_authenticity_token
, чтобы установить его значение.