Rails 5.2
Я хотел бы установить глобальную переменную, доступную для всех контроллеров. Это будет установлено, основываясь на значении одного из параметров. Я попытался сделать это:
controllers/application_controller.rb
before_action :set_book_author
def set_book_author
@book_author = params[:book_author] if params.has_key?(:book_author)
end
Но так как остальной вызов идет в / book_authors /: book_author, application_controller.rb, не видит его первым.
Есть ли способ сделатьthis?
Пример того, как я понимаю сессию как ненадежную:
class Location
def initialize(ip)
@location = location_request(ip)
end
end
class ApplicationController < ActionController::Base
before_action :set_location
def set_location(user_ip)
session[:user_location] = Location.new(user_ip)
end
end
Как только я перестал использовать Location, приложение вызовет исключение, если я попытаюсь использовать session[: USER_LOCATION]