gpt4 book ai didi

ruby-on-rails - 过滤掉 rails 保留字?

转载 作者:行者123 更新时间:2023-12-04 06:25:31 26 4
gpt4 key购买 nike

作为一名 Rails 新手,我一直遇到一个难以调试的问题:对模型或列名称使用保留的 Rails 字(如:connection)...

另外,有时我会跳过列名的第一个选择(例如 :date),因为我不确定它是否被允许并且我宁愿安全。

是否有 gem 或我可以添加的行来自定义 Rails 生成器,自动检查这些并警告我?

我找到了一个已有四年历史的这些名称列表,但更有帮助的是我可以执行 modelA.methods 和 modelB.methods 来获取保留字列表。我不确定这有多全面 - 是吗?

最佳答案

Rails 保留字列表的一个问题是应用程序的不同部分在不同的范围内运行。一些可能适用于 Controller 操作的名称不适用于模型列,反之亦然。此外,考虑到 gems 倾向于将各种代码混合到您的应用程序中,静态保留字列表不会对您有多大用处。

如果生成器检查这个就好了,但他们现在没有,而且实现起来可能很棘手,因为生成器不会在与 Controller /模型本身完全相同的环境中运行(即混合所有相同的 gem )。此外,有些人一旦掌握了模式,就会在一段时间后离开生成器,因此最好也为非生成器世界提供答案。

我会建议另一种策略。当您质疑特定方法名称或列名称是否是一个好主意时,只需询问应用程序的该部分是否已被使用,使用 respond_to?instance_methods.include?

ActionController::Base.instance_methods.include? :display
=> true
# display is a bad action name

或使用您的实际控制人:

MyController.new.respond_to? :display

对于模型:

ActiveRecord::Base.instance_methods.include? :status
=> false
# status is an okay column name

MyModel.new.respond_to? :status

关于ruby-on-rails - 过滤掉 rails 保留字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21047006/

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