在application.html.erb文件中定义Rails变量的位置在哪里?

4

我有一个导航栏放在/views/layouts/application.html.erb中,在那里我放置了@buy和@sell变量,以获取最新的比特币价格。它们目前被放置在/welcome控制器中,所以当在welcome控制器中时才会显示价格。如果我导航到另一个控制器,该栏将变为空。

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

这段代码当前位于欢迎控制器中。我希望它能够在导航栏中随时可用,无论用户在哪个控制器中。任何帮助都将不胜感激!

2个回答

5

将其放置在应用程序控制器中,并使用before action。

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

好的。我可以正常使用 @buy@sell 吗?还是说我需要这样做:@buy.set_prices - user3024194
1
@user3024194,你可以直接使用“@buy”和“@sell”。 - nahtnam

1

两种方法:

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

    before_filter :prices

    def prices

    @buy = coinbase.buy_price

    @sell = coinbase.sell_price

    end

  2. 将代码写在application.html.erb中,在导航栏代码之前:

    <% @buy = coinbase.buy_price %>

    <% @sell = coinbase.sell_price %>

    并直接使用它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接