Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:在所有控制器上放置所需变量的位置_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails:在所有控制器上放置所需变量的位置

Ruby on rails Rails:在所有控制器上放置所需变量的位置,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有一个调用 feed = Feedzirra::Feed.fetch_and_parse("http://my.rss.feed") @entries = feed.entries 这一部分在我网站80%的页面上被调用——我只是想知道最佳实践是什么:在哪里存储这种类型的变量。非常感谢您的建议。您应该将其放入应用程序控制器的前置过滤器中。通过这种方式,它将在每个操作中分配给每个控制器。您应该将它放入应用程序控制器的before\u过滤器中。这样,它将在每个操作中分配给每个控制器。我猜使用过滤器

我有一个调用

feed = Feedzirra::Feed.fetch_and_parse("http://my.rss.feed")
@entries = feed.entries

这一部分在我网站80%的页面上被调用——我只是想知道最佳实践是什么:在哪里存储这种类型的变量。非常感谢您的建议。

您应该将其放入应用程序控制器的前置过滤器中。通过这种方式,它将在每个操作中分配给每个控制器。

您应该将它放入应用程序控制器的before\u过滤器中。这样,它将在每个操作中分配给每个控制器。

我猜使用过滤器-无论之前或之后适用。

我猜使用过滤器-无论之前或之后适用。

此代码应放在控制器中。最简单的方法就是这样做

class ApplicationController

  def fetch_feed_entries
    feed = Feedzirra::Feed.fetch_and_parse("http://my.rss.feed")
    @entries = feed.entries
  end

end
然后,在任何必须发生这种情况的控制器中,您可以编写如下内容:

class PostsController

  before_filter :fetch_feed_entries

end
 def fetch_feed_entries
   session[:feed_entries] ||= Feedzirra::Feed.fetch_and_parse("http://my.rss.feed").entries
   @entries = session[:feed_entries]
 end
现在,这段代码仍然会为每个请求获取提要。如果那是你想要的,那很好。但是您也可以将提要存储在会话中,因此每个会话只获取一次提要。我不确定这对你是否有意义

然后你会写这样的东西:

class PostsController

  before_filter :fetch_feed_entries

end
 def fetch_feed_entries
   session[:feed_entries] ||= Feedzirra::Feed.fetch_and_parse("http://my.rss.feed").entries
   @entries = session[:feed_entries]
 end

希望这有帮助。

此代码应放在控制器中。最简单的方法就是这样做

class ApplicationController

  def fetch_feed_entries
    feed = Feedzirra::Feed.fetch_and_parse("http://my.rss.feed")
    @entries = feed.entries
  end

end
然后,在任何必须发生这种情况的控制器中,您可以编写如下内容:

class PostsController

  before_filter :fetch_feed_entries

end
 def fetch_feed_entries
   session[:feed_entries] ||= Feedzirra::Feed.fetch_and_parse("http://my.rss.feed").entries
   @entries = session[:feed_entries]
 end
现在,这段代码仍然会为每个请求获取提要。如果那是你想要的,那很好。但是您也可以将提要存储在会话中,因此每个会话只获取一次提要。我不确定这对你是否有意义

然后你会写这样的东西:

class PostsController

  before_filter :fetch_feed_entries

end
 def fetch_feed_entries
   session[:feed_entries] ||= Feedzirra::Feed.fetch_and_parse("http://my.rss.feed").entries
   @entries = session[:feed_entries]
 end
希望这有帮助