Задать поля сайта / пользователя в ActiveResource

Я создаю приложение sinatra, которое будет использовать гем Highrise CRM для доступа к данным Highrise. Этот драгоценный камень основан на классе ActiveResource. Я хочу установить сайт, пользовательские поля для каждого запроса. Я последовал предложению, опубликованному здесь -Безопасно ли настраивать HTTP-аутентификацию Active Resource для каждого пользователя?, Я добавляю код (показанный ниже) и получаю ошибку. Может кто-нибудь помочь разобраться в этой ошибке и как ее исправить.

class ActiveResource::Base
  class << self
    %w(site user).each do |attr|               

      define_method(attr) do
        Thread.current["active_resource.#{attr}"]
      end

      define_method("#{attr}=", val) do
        Thread.current["active_resource.#{attr}"] = val
      end
    end
  end
end

И ошибка:

c:/dev/hgadget/application.rb:18:in `block in singletonclass':
undefined local variable or method `val' for #<Class:ActiveResource::Base> (NameError)
    from c:/dev/hgadget/application.rb:12:in `each'
    from c:/dev/hgadget/application.rb:12:in `singletonclass'
    from c:/dev/hgadget/application.rb:11:in `<class:Base>'
    from c:/dev/hgadget/application.rb:9:in `<top (required)>'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from <internal:lib/rubygems/custom_require>:29:in `require'
    from application_test.rb:1:in `<main>'

------------------------Обновить------------------------- ----

Я попробовал ваше предложение, теперь я получаю эту ошибку.

NoMethodError - undefined method `path' for "https://test.abcd.com":String:
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/activeresource3.0.11/lib/active_resource/base.rb:562:in `prefix'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/activeresource3.0.11/lib/active_resource/base.rb:667:in `collection_path'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/activeresource3.0.11/lib/active_resource/base.rb:856:in `find_every' 
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/activeresource-3.0.11/lib/active_resource/base.rb:777:in `find' application.rb:78:in `block in <main>'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:1212:in `call'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:1212:in `block in compile!'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:772:in `[]'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:772:in `block (3 levels) in route!'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:788:in `route_eval'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:772:in `block (2 levels) in route!'
  c:/Ruby192/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:821:in `block in process_route'

Ответы на вопрос(2)

Ваш ответ на вопрос