基於多執行緒的全域性變數
阿新 • • 發佈:2018-11-01
def current_nation default_nation = (current_contact && current_contact&.company&.country) ? current_contact&.company&.country : "United States" if session[:is_use_courier] == '1' Thread.current[:is_use_courier] = true else Thread.current[:is_use_courier] = false end cookie_country_id = cookies['country_id'].to_i contact_country_id = current_contact.try(:ship_nation).to_i country_id = cookie_country_id > 0 ? cookie_country_id : contact_country_id @current_nation = Nation.where(id: country_id).first if @current_nation.blank? cookies.delete('country_id') @current_nation = Nation.where(name: default_nation ).first end Product.current_nation = @current_nation&.name StockChemicalPrice.current_nation = @current_nation&.name @current_nation end class Product < ApplicationRecord thread_mattr_accessor :current_currency, :current_nation, instance_accessor: true end