leo*_*nel 61 ruby ruby-on-rails helpers activeadmin
我正在创建一个由Formtastic使用的帮助器,但是我得到了undefined local variable or method错误.我不知道在哪里放它所以它可以工作.
我已经尝试过application_helper.rb和app/helpers/active_admin/view_helpers.rb
Bis*_*lli 70
您可以在尝试时在app/helpers /中定义它们,但是您需要通过活动管理员的初始化程序包含它们,如下所示:
# in config/initializers/active_admin.rb
ActiveAdmin.setup do |config|
....
end
module ActiveAdmin::ViewHelpers
include ApplicationHelper
end
Run Code Online (Sandbox Code Playgroud)
alo*_*ony 60
您需要将助手函数放在app/helpers/active_admin/views_helper.rb文件示例中:
module ActiveAdmin::ViewsHelper #camelized file name
def my_helper
# do something
end
end
Run Code Online (Sandbox Code Playgroud)
Mar*_*yne 24
我使用ActiveAdmin 0.6.1发现的是,ActiveAdmin将在app/helpers/active_admin/*_ helper.rb中查找帮助程序,但名称并不重要.
重要的是:
如果有人知道这是正式记录在哪里,那将是非常棒的.
这是一个例子:https://gist.github.com/afred/7035a657e8ec5ec08d3b
okl*_*liv 12
app/helpers/active_admin/view_helpers.rb
Run Code Online (Sandbox Code Playgroud)
没帮我
编辑:我相应地将它更改为views_helper.rb和ViewsHelper并且它有效
*但如果您只想为某些资源定义它,您可以按我的方式进行
我不得不定义
#app/helpers/active_admin/categories_helper.rb
module ActiveAdmin::CategoriesHelper
def helper_method
end
end
Run Code Online (Sandbox Code Playgroud)
对于我的active_admin资源app/admin/categories.rb
我可以在ActiveAdmin 0.6.1中工作(最后!).解决方案是创建一个辅助模块,如下所示:
# app/helpers/active_admin_helpers.rb
module ActiveAdminHelpers
# make this method public (compulsory)
def self.included(dsl)
# nothing ...
end
# define helper methods here ...
def helper_method
...
end
end
Run Code Online (Sandbox Code Playgroud)
然后以这种方式包含这个模块:
# app/admin/[resource].rb
include ActiveAdminHelpers
ActiveAdmin.register [Resource] do
...
end
Run Code Online (Sandbox Code Playgroud)
实际上,这不是一个很好的解决方案,但它干涸并且运作良好.我已经阅读并尝试了很多方法和解决方案,例如ViewHelpers模块(置于'app/helpers'或'app/admin/active_admin'),ActiveAdmin :: DSL Monkey补丁,......但是那些从未在版本中工作的0.6.1(我对其他版本没有任何想法):(
另一种方法是让特定的 ActiveAdmin 控制器在后台生成包含帮助程序。此方法将允许在每个文件中明确包含帮助程序而不是全局。
ActiveAdmin.register MyModel do
controller do
include MyHelper
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25129 次 |
| 最近记录: |