【发布时间】:2013-08-12 15:45:44
【问题描述】:
我正在自定义 Rails 管理员:https://github.com/sferik/rails_admin,我需要为某些模型禁用/隐藏“添加新”选项。
任何帮助都会为我节省很多时间。提前致谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 rails-admin
我正在自定义 Rails 管理员:https://github.com/sferik/rails_admin,我需要为某些模型禁用/隐藏“添加新”选项。
任何帮助都会为我节省很多时间。提前致谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 rails-admin
我使用以下方法在特定模型上实现此目的。希望这会有所帮助:
config.actions do
new do
except ['Some Model']
end
end
【讨论】:
http://localhost:3000/dashboard/user/new :/
except [User]
答案在configuration documentation for actions。默认情况下,所有操作都是可能的,包括new。要自定义可能的操作,请在 config.actions 和 config/initilizers/rails_admin.rb 中列出您想要支持的所有操作,省略您不想支持的操作。例如,这里有一个配置块,它允许除new 之外的所有默认操作:
# config/initilizers/rails_admin.rb
RailsAdmin.config do |config|
config.actions do
# root actions
dashboard
# collection actions
index
# `new` is NOT allowed
export
history_index
bulk_delete
# member actions
show
edit
delete
history_show
show_in_app
end
end
【讨论】:
new 操作,并在访问任何其他模型时重新启用它。跨度>
can calls related to the new action,尽管我没有意识到这是相关的。
要拥有多个模型,您必须将每个模型放在单引号中。例如,考虑以下配置:
config.actions do
dashboard
index do
except ['Address']
end
new do
except ['Address', 'Employee', 'Setting']
end
export
show
edit do
except ['Employee']
end
end
这意味着:
User 模型,您可以在导航栏中看到它,对其进行编辑,然后在索引页面上添加一个新模型。【讨论】:
用 Cancan 实现了它。您可以参考上面的答案以 rails admin 的方式进行操作。
【讨论】: