Ruby on rails 如何处理rails中的小部件?

Ruby on rails 如何处理rails中的小部件?,ruby-on-rails,ruby,Ruby On Rails,Ruby,例如,StackOverflow将用户的声誉显示在顶部。显然,这是从数据库中抓取的,并显示在每一页上。当然,这并不是在每个页面上的每个控制器操作中,因为这将是难以置信的冗余 在rails中如何处理这种情况?我能想到的唯一方法是使用before\u filters将模型传递到页面中,但这似乎是对该功能的滥用。似乎有gem可以满足我的需求,但我认为这是一个常见的问题,rails中必须有一个简单的解决方案,而不必求助于插件或gem。我只需要在其中制作一个部件,并在您希望它出现的布局中呈现它。让它做它需

例如,StackOverflow将用户的声誉显示在顶部。显然,这是从数据库中抓取的,并显示在每一页上。当然,这并不是在每个页面上的每个控制器操作中,因为这将是难以置信的冗余


在rails中如何处理这种情况?我能想到的唯一方法是使用
before\u filter
s将模型传递到页面中,但这似乎是对该功能的滥用。似乎有gem可以满足我的需求,但我认为这是一个常见的问题,rails中必须有一个简单的解决方案,而不必求助于插件或gem。

我只需要在其中制作一个部件,并在您希望它出现的布局中呈现它。让它做它需要做的任何事情,例如连接到db,运行一些js连接到外部站点,等等


如果你关心优化,那么当它成为一个问题时,就处理它。

我只需要对其中的小部件做一个局部处理,并在你希望它出现的布局中呈现它。让它做它需要做的任何事情,例如连接到db,运行一些js连接到外部站点,等等


如果您关心优化,那么当它成为一个问题时,请处理它。

我想,您可以将所需的代码放入视图帮助器中。然后,像前面所说的那样,在您希望它出现的布局中渲染部分内容,调用helper的函数。 看这里:

我想,您可以将所需的代码放入视图助手中。然后,像前面所说的那样,在您希望它出现的布局中渲染部分内容,调用helper的函数。 看这里:

您需要的是布局。在rails中,您可以定义用于构建站点的页眉、页脚和侧栏。在生成的rails代码中查找app/views/layouts/application.html.erb。在底部,您将看到:

<body>

<%= yield %>

</body>
然后在布局中显示它,如下所示:

<body>

<%= @reputation %>

<%= yield %>

</body>


这在《使用Rails进行敏捷Web开发》一书中有详细介绍。如果您打算在Rails中开发,我建议您使用最新版本。

您需要的是布局。在rails中,您可以定义用于构建站点的页眉、页脚和侧栏。在生成的rails代码中查找app/views/layouts/application.html.erb。在底部,您将看到:

<body>

<%= yield %>

</body>
然后在布局中显示它,如下所示:

<body>

<%= @reputation %>

<%= yield %>

</body>


这在《使用Rails进行敏捷Web开发》一书中有详细介绍。如果您打算在Rails中开发,我建议您使用最新版本。

但是,您不是将所有内容都放在视图中吗?您如何继续使用MVC,但实现类似于小部件的行为?@ryeguy,是的。我想,你可以在你的应用程序控制器中的before_动作中设置小部件。。。然而,必须有一个更标准的方法来做到这一点。但是你不是把所有的东西都放在视图中吗?您如何继续使用MVC,但实现类似于小部件的行为?@ryeguy,是的。我想,你可以在你的应用程序控制器中的before_动作中设置小部件。。。然而,必须有一个更标准的方法来做到这一点。我认为,这不是滥用过滤器之前的
,它几乎是唯一一个可以用干燥方式制作的地方。另一个解决方案可以是视图的
帮助程序
。将其放入帮助程序中。从视图访问模型完全是MVCish。事实上,我经常这样做,从来没有遇到过任何问题。我认为,这不是滥用过滤器之前的
,它几乎是唯一一个可以用干燥方式制作的地方。另一个解决方案可以是视图的
帮助程序
。将其放入帮助程序中。从视图访问模型完全是MVCish。事实上,我经常这样做,从来没有任何问题。