gpt4 book ai didi

ruby-on-rails - 检查 Controller 是否在 Rails 中有模型

转载 作者:行者123 更新时间:2023-12-03 12:17:55 25 4
gpt4 key购买 nike

在一个下拉列表中,我在另一个下拉列表中动态获取了所有 Controller 类及其所有操作,这些类用于某些操作。有些 Controller 没有任何模型,例如“DashboardsController”没有 Dashboard 模型。它仅用于显示仪表板。

所以,基本上我需要过滤掉没有模型的 Controller 。我需要一个向其传递 Controller 类并返回 true/false 的方法。

def has_model?(controller_klass)
# TODO
end

最佳答案

如果您将 Controller 的名称作为字符串传递,您可以尝试这样的操作。此解决方案假定您的模型在 rails 5 之前使用 ActiveRecord,其中 ApplicationRecord 用于定义模型;在这种情况下,只需将 ActiveRecord::Base 切换为 ApplicationRecord。此外,如果您的模型是普通的旧 ruby 对象 (PORO),那么这对它们不起作用。

def has_model?(controller_klass)
begin
class_string = controller_klass.to_s.gsub('Controller', '').singularize
class_instance = class_string.constantize.new
return class_instance.class.ancestors.include? ActiveRecord::Base
rescue NameError => e
return false
end
end

关于ruby-on-rails - 检查 Controller 是否在 Rails 中有模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40265579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com