ActiveRecord::Store без аксессуаров?

Есть ли способ использовать ActiveRecord::Store без объявления методов доступа?

Вариант использования заключается в том, что я хочу, чтобы пользователи могли добавлять любую переменную к URL-адресу, а затем сохранять этот ключ/значение вместе с записью.

Например, кто-то может сделать: http://example.com/response?order_number=12345&manager=Johnny&used_valet=true

Поэтому я бы хотел, чтобы order_number, manager и used_valet сохранялись в столбце variables для записи. Но у каждого пользователя будет свой набор переменных, которые они хотели бы сохранить.

Прямо сейчас у меня есть это:

class Response < ActiveRecord::Base
  store :variables
end

Но при этом возникает ошибка unknown attribute:

$ Response.create(order_number: '12345')
ActiveRecord::UnknownAttributeError: unknown attribute: order_number

person Shpigford    schedule 03.05.2013    source источник


Ответы (1)


Вы не можете передать его в конструктор, вам придется установить каждую переменную независимо. См. здесь строку, в которой задается значение страны: http://api.rubyonrails.org/classes/ActiveRecord/Store.html

Вы должны иметь возможность пройти через объект params, чтобы получить все параметры из строки запроса, а затем для каждого параметра установить атрибут настроек.

person Dave Cowart    schedule 03.05.2013