2013-12-23 8 views
1

У меня есть навигатор, который помещается в /views/layouts/application.html.erb, и там я помещаю переменные @buy и @sell, которые получают последнюю биткойну цена. В настоящее время они помещаются в контроллер/welcome, поэтому цены отображаются только в приемном контроллере. Если я перейду к другому контроллеру, панель просто станет пустой.Где определить переменную Rails в application.html.erb

@buy = coinbase.buy_price 
@sell = coinbase.sell_price 

Это код, который в настоящее время размещен в приемном контроллере. Я хочу, чтобы он был доступен на navbar независимо от того, какой контроллер пользователь. Любая помощь будет замечательной!

ответ

3

место в контроллере приложения и использовать перед действием

before_action :set_prices 
def set_prices 
    @buy = coinbase.buy_price 
    @sell = coinbase.sell_price 
end 
+0

ОК. Могу ли я использовать '@ buy' и' @ sell' нормально или мне нужно сделать что-то вроде этого: '@ buy.set_prices'? – user3024194

+1

@ user3024194 Вы можете просто использовать '@ buy' и' @ sell'. – nahtnam

1

двумя способами:

  1. Написать код в application_controller как before_filter и использовать переменные в навигационной панели.

    before_filter: цены

    цены Защиту

    @buy = coinbase.buy_price

    @sell = coinbase.sell_price

    конец

  2. Написать код в application.html .erb, непосредственно перед навигационным штрих-кодом:

    <% @buy = coinbase.buy_price %>

    <% @sell = coinbase.sell_price %>

    и использовать их непосредственно.

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