我有某些(或所有)控制器需要的Ruby方法。我试着把它们放进去/app/helpers/application_helper.rb
。我已经将其用于视图中使用的方法。但是控制器看不到那些方法。我应该在另一个地方放它们吗?还是需要以不同的方式访问那些辅助方法?
使用最新的稳定Rails。
Answers:
对于Rails 4及更高版本,要解决的问题是解决之道。有一篇不错的文章,仍然可以通过Wayback Machine进行查看。
本质上,如果您在controllers文件夹中查找,您应该会看到一个关注子文件夹。沿这些行在其中创建一个模块
module EventsHelper
def do_something
end
end
然后,将其包含在控制器中
class BadgeController < ApplicationController
include EventsHelper
...
end
extend ActiveSupport::Concern
控制器问题吗?
您应该在应用程序控制器内定义方法,如果方法很少,则可以按照以下步骤操作
class ApplicationController < ActionController::Base
helper_method :first_method
helper_method :second_method
def first_method
... #your code
end
def second_method
... #your code
end
end
您还可以包括以下帮助文件
class YourController < ApplicationController
include OneHelper
include TwoHelper
end
helper_method :first_method, :second_method
。
helper_method :my_helper_method
在ApplicationController
上,使它们的意见。