Rails 中的助手与控制器

发布于 2024-11-25 17:31:30 字数 172 浏览 0 评论 0原文

我想向我的 User 对象添加一个函数,所以我要创建一个用户控制器来执行此操作(我正在使用 Devise,所以我相信这应该向现有的 Devise 用户对象添加一个函数)。我注意到我的 Rails 项目中有一个名为“helpers”的文件夹,我应该将额外的功能放在其中而不是放在控制器内吗?该方法是启用匿名会话,这并不是现成的设计。

I want to add a function to my User object, so I was going to create a user controller to do this (I'm using Devise so I believe this should add a function to the existing Devise user object). I noticed there's a folder called 'helpers' in my rails project, should I be putting my extra functions in there instead of inside the controller? The method is to enable anonymous sessions, something that doesn't come out of the box with devise.

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

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

发布评论

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

评论(3

失去的东西太少 2024-12-02 17:31:30

瘦控制器和胖模型。创建 Rails 应用程序时尝试遵循这一原则。如果需要,请将您的逻辑和一些计算放入模型中。控制器用于控制将哪些数据传递给视图以及如何显示数据。仅将那些有助于在 Helpers 中显示视图的方法放入其中。例如,将用于格式化数字的代码放入助手中。如果您想在控制器之间共享一些源代码并且不适合模型,那么您可以创建一个库。

Thin Controller and Fat Models. Try to follow this principle when creating rails application. put your logic and some calculations if needed in Models. Controllers is used to controller what data to pass to views and how to display data. Put only those methods that helps your display of views in Helpers. e.g. put the code for formating numbers inside helpers. If you want to share some source code between controllers and doesn't fit into models, then you can create a library.

绮烟 2024-12-02 17:31:30

如果您想向 User 类添加一个方法,不,请将其添加到 user.rb 文件中:

class User < ActiveRecord::Base

 def full_name
    # logic
 end

end

如果您想要一个可以在控制器内部使用的方法,并且视图,然后在 helpers 目录中定义一个 helper 并将其添加到那里。

If you want to add a method to the User class, no, add it to the user.rb file:

class User < ActiveRecord::Base

 def full_name
    # logic
 end

end

If you want a method that can be used inside your controllers and views, then define a helper inside the helpers directory and add it there.

伴我心暖 2024-12-02 17:31:30

薄控制器总是更好。所以是的,将任何“帮助”你的控制器/视图的东西放在帮助文件夹中。

A thin controller is always better. So yes, put anything that "helps" your controller/view in the helper folder.

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