Пытаюсь понять: в Ruby и как он сочетается с этим кодом?

Я пришел с языка программирования Pyton, понял и могу читать C/C++. Однако я работал над Ruby всего несколько недель, и у меня возникли проблемы с чтением более сложных кодов в рельсах.

Я вижу, что есть много документации, блогов и ссылок на ":" после переменной в рубине, из того, что я исследовал и прочитал, это символ. Я думал, что понял основную концепцию этого, но я очень запутался, когда прочитал код rails application_controller.rb

Я пытаюсь определить, как это связано с этим кодом. Я предполагаю, что protect_from_forgery с::exception - это функция, которая передает аргументы с: и:exception?

class ApplicationController < ActionController::Base
    # Prevent CSRF attacks by raisng an exception 
    protect_from_forgery with: :exception

Я читаю документацию на https://api.rubyonrails.org/classes/ActionController/Base.html. И пытаюсь пройти через руководства по рельсам, но я застреваю в понимании этого синтаксиса рубина.

1 ответ

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

protect_from_forgery({with: :exception})

Вы можете проверить реализацию метода по следующей ссылке

https://github.com/rails/rails/blob/b738f1930f3c82f51741ef7241c1fee691d7deb2/actionpack/lib/action_controller/metal/request_forgery_protection.rb

Другие вопросы по тегам