在application.html.erb中定义Rails变量的位置

时间:2013-12-23 05:01:20

标签: ruby-on-rails

我有一个放置在/views/layouts/application.html.erb中的导航栏,在那里我放置了@buy和@sell变量,这些变量获得了最新的比特币价格。它们当前位于/ welcome控制器中,因此价格仅在欢迎控制器中显示。如果我导航到另一个控制器,那么该栏就会变空。

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

这是当前放置在欢迎控制器中的代码。无论用户使用什么控制器,我都希望它可用于导航栏。任何帮助都会很棒!

2 个答案:

答案 0 :(得分:4)

将其放在应用程序控制器中并使用之前的操作

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

答案 1 :(得分:1)

两种方式:

  1. 将application_controller中的代码写为before_filter,并使用导航栏中的变量。

    before_filter:价格

    def price

    @buy = coinbase.buy_price

    @sell = coinbase.sell_price

  2. 在导航条形码之前的application.html.erb中编写代码:

    <% @buy = coinbase.buy_price %>

    <% @sell = coinbase.sell_price %>

    直接使用它们。