hyp*_*jas 5 ruby-on-rails ruby-on-rails-3 rails-admin
我不太了解它是如何工作的rails_admin gem用于创建一个新的动作.
我想在rails_admin root中创建一个名称平衡的操作.
我在myapp/lib文件夹中创建了一个名为rails_admin_balance.rb的文件,如:
require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'
module RailsAdminBalance
end
module RailsAdmin
module Config
module Actions
class Balance < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :object_level do
true
end
register_instance_option :link_icon do
'icon-eye-open'
end
register_instance_option :root? do
true
end
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我在/views/rails_admin/main/balance.html.erb上创建了一个新文件
我的rails_admin.rb文件里面有
config.actions do
dashboard # mandatory
# collection actions
index # mandatory
new
export
history_index
bulk_delete
# member actions
show
edit
delete
history_show
show_in_app
balance
end
Run Code Online (Sandbox Code Playgroud)
当我尝试运行rails服务器时,我收到此错误:
退出
/home/ubuntu/Desktop/myapp/config/initializers/rails_admin.rb:33:in `block (2 levels) in <top (required)>': undefined method `balance' for RailsAdmin::Config::Actions:Module (NoMethodError)....
Run Code Online (Sandbox Code Playgroud)
我哪里有错误?
我做得不好?
非常感谢你!
我有完全相同的问题.我认为这是因为rails_admin_[my_action].rb/ lib下的文件没有加载,并且rails_admin文档中没有记录.
您可以尝试从rails_admin.rb or just move all the code you have onrails_admin_ [my_action] .rb to therails_admin.rb`初始化程序加载它(将其粘贴到文件的开头).
有第三个选项(只有当你不想重复使用这个动作时),IMHO看起来更清洁:
摆脱rails_admin_[my_action].rb(你的rails_admin_balance.rb)并在里面重写你的行动rails_admin.rb如下:
config.actions do
dashboard # mandatory
# collection actions
index # mandatory
new
export
history_index
bulk_delete
# member actions
show
edit
delete
history_show
show_in_app
member :balance do
link_icon 'icon-eye-open'
root? true
end
end
Run Code Online (Sandbox Code Playgroud)
只需在rails_admin.rb上添加它即可
module RailsAdmin
module Config
module Actions
class Balance < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
在RailsAdmin作用域上打开Actions模块可以避免此特定错误.您的定义可以保留在lib上的Balance模块中.