为这种类型的场景创建一个辅助方法是个好主意吗?

发布于 2024-10-19 23:34:39 字数 212 浏览 3 评论 0原文

我的 html.erb 中很多地方都有这段代码。

<div id="left-nav">
  <%= render :partial => 'tests/tests_left_menu' %>
</div>

为此类代码创建辅助方法是个好主意吗?

如何在 helper 中编写这段代码?

I have this code in my html.erb at many places.

<div id="left-nav">
  <%= render :partial => 'tests/tests_left_menu' %>
</div>

Is it a good idea to create helper method for this type of code ?

How to write this code in helper ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

天生の放荡 2024-10-26 23:34:39

我看到了一些适合您的情况的好策略。根据您项目的具体要求进行选择。

  • 您可以将 div#left-nav 及其内容放入另一个部分,例如 tests/tests_left_menu_with_wrapper。这可以为您节省几行代码。
  • 如果您可以概括整个片段出现时的情况,则可以将其移动到布局中。这样,一旦您使用 ActionController::Base.layout 方法声明特定操作的布局,您就可以完全跳过编写整个段。
  • 您可以编写一个帮助程序,但尚不清楚它与仅使用 content_tag 相比有何优势。您最好使用部分或布局。

I see a few good strategies to use in your situation. Pick and choose based on your project's specific requirements.

  • You can just put div#left-nav and its contents into yet another partial like tests/tests_left_menu_with_wrapper. This saves you a couple of lines.
  • If you can generalize the cases when the entire segment appears, you can move it into a layout. This way, once you declare the layout for a particular action using the ActionController::Base.layout method, you'll be able to skip writing the entire segment altogether.
  • You can write a helper, but it's not clear what advantage it confers over simply using content_tag. You're probably better off using partials or layouts.
死开点丶别碍眼 2024-10-26 23:34:39

就我个人而言,我认为没有必要,而且我认为这更像是因为您没有使用其他工具,例如 haml 为了帮助减少 erb 文件中的行数,

只需 1 即可在 haml 中实现相同的代码行:

#left-nav= render :partial => 'tests/tests_left_menu'

希望这有帮助=)

Personally i don't think there's a need to, and i think it's more like because you are not using other tools like haml to help reduce the number of lines in an erb files

the same code can be achieved in haml in just 1 line:

#left-nav= render :partial => 'tests/tests_left_menu'

hope this helps =)

合约呢 2024-10-26 23:34:39

我想如果您在很多地方都有该代码,我会将 div 移动到部分中。如果您需要灵活地将 tests_left_menu 放在 div 之外,在这种情况下我仍然会选择两个部分而不是一个助手。尽可能避免用 Ruby 编写 html :)

I suppose if you have that code in many places I'd move the the div into the partial. If you need the flexibility to have tests_left_menu outside of the div I'd still pick two partials over a helper in this scenario. Avoid writing html in Ruby when you can :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文