Rails 中的助手与控制器
我想向我的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
瘦控制器和胖模型。创建 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.
如果您想向
User
类添加一个方法,不,请将其添加到user.rb
文件中:如果您想要一个可以在控制器内部使用的方法,并且视图,然后在 helpers 目录中定义一个 helper 并将其添加到那里。
If you want to add a method to the
User
class, no, add it to theuser.rb
file: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.
薄控制器总是更好。所以是的,将任何“帮助”你的控制器/视图的东西放在帮助文件夹中。
A thin controller is always better. So yes, put anything that "helps" your controller/view in the helper folder.