2015-04-08 5 views
0

Я слышал, что попытка получить доступ к куки-файлам в модели в Rails полностью исключена.Доступ к файлам cookie из модели

Однако это моя ситуация:

Это небольшое приложение, чтобы управлять своими расходами. Суммы хранятся в базе данных в евро, но пользователь может устанавливать разные валюты, поэтому суммы отображаются в валюте, которую хочет пользователь. Для этого я переопределил атрибут getter и setter, поэтому при получении и настройке суммы применяется обменный курс.

Дело в том, что я храню выбранную валюту пользователя в куки и переопределенная и присваивателя определены в Expense модели, очевидно:

def quantity=(quantity) 
    update_rates 
    write_attribute(:quantity, @eu_bank.exchange(100*quantity.to_i, cookies[:currency], "EUR").cents) 
end 

def quantity 
    update_rates 
    c = read_attribute(:quantity) 
    @eu_bank.exchange(c.to_i, "EUR", cookies[:currency]).cents/100.0 
end 

Как я могу подойти к этой ситуации?

ответ

1

Вы можете получить доступ к куки-файлу в своем контроллере, а затем передать его немедленно в свою модель, позвонив в свой контроллер что-то вроде my_expences.set_exchange_rate(cookie[:exchange_rate]).

+0

Действительно, это также предпочтительный шаблон при доступе к другим объектам уровня контроллера, таким как 'session' и' params', - просто передайте их модели, держите контроллер тонким. – Epigene

Смежные вопросы