我想知道为什么有人应该在控制器中使用helper_方法来创建helper方法,而不是在helper文件中创建"普通"方法.这样做的利弊是什么?

推荐答案

当功能在控制器和视图之间使用时,helper_method很有用.一个很好的例子是current_user.

如果该方法更多地处理控制器逻辑,而不是格式化,那么它属于控制器.所有控制器之间都会共享大约current_user个,所以应该在ApplicationController中定义.

真正的"helper"方法处理视图并处理格式化和模板逻辑之类的事情.控制器中很少需要这些,它们属于应用程序/助手下的自己的模块.您可以在需要时将这些方法包括在控制器中,但最终您的控制器可以使用整个模块的视图辅助方法.

Ruby-on-rails相关问答推荐

在ransackable_scopes中的作用域上创建activeadmin过滤器

Web控制台不会出现在例外页面Rails 7.1.1上

Turbo-Rails:如何将 Turbo Frame 添加到 `application.html.erb`?

如何使用 activerecord activerecord-session_store 在 Rails 应用程序中使用 cookie 值在数据库中查找会话记录

Selenium chromedriver:无法从不可键入的键构造KeyEvent

撬Ruby 如何重新加载?

ActiveRecord 回调列表

基于 2 列定义唯一主键

Rails 中页面视图的简单计数器

控制器规格与请求规格?

activerecord 查找所有未包含在数组中的内容

Rspec 与 TestUnit

如何编写 Capybara 断言来判断按钮的存在及其启用或禁用状态?

如何测试自定义验证器?

Rails HABTM - 正确删除关联

rbenv:没有 gemsets 生存

如何在 Ruby 中搜索数组?

从模型中获取验证

测试和规格有什么区别?

.erb 、 .rhtml 和 .html.erb 有什么区别?