Ruby on rails 过滤掉rails保留字?
作为一名Rails新手,我一直遇到一个难以调试的问题:对模型或列名使用Rails保留字(如:connection) 另外,有时我会跳过我对列名的第一个选择(比如:date),因为我不确定它是否被允许,我宁愿安全 是否有一个gem或一行我可以添加来定制rails生成器,它可以自动检查并警告我Ruby on rails 过滤掉rails保留字?,ruby-on-rails,generator,reserved-words,Ruby On Rails,Generator,Reserved Words,作为一名Rails新手,我一直遇到一个难以调试的问题:对模型或列名使用Rails保留字(如:connection) 另外,有时我会跳过我对列名的第一个选择(比如:date),因为我不确定它是否被允许,我宁愿安全 是否有一个gem或一行我可以添加来定制rails生成器,它可以自动检查并警告我 我已经找到了这些名字的一个四年前的列表,但更有用的是,我可以使用modelA.methods和modelB.methods来获得保留字的列表。不过,我不确定这有多全面,是吗?Rails保留字列表的一个问题是,
我已经找到了这些名字的一个四年前的列表,但更有用的是,我可以使用modelA.methods和modelB.methods来获得保留字的列表。不过,我不确定这有多全面,是吗?Rails保留字列表的一个问题是,应用程序的不同部分在不同的范围内运行。一些可能适合控制器操作的名称作为模型列不适合,反之亦然。此外,由于gems倾向于将各种代码混合到应用程序中,因此静态保留字列表对您没有多大用处 如果生成器检查了这一点,那就太好了,但它们现在没有,而且可能很难实现,因为生成器与控制器/模型本身在完全相同的环境中运行(即混合在所有相同的gem中)。另外,一些人一旦掌握了模式的诀窍,过了一段时间就离开了生成器,所以对于非生成器世界也有一个答案是很好的 我建议另一种策略。当您询问某个特定的方法名或列名是否是一个好主意时,只需使用
respond\u to?
或instance\u方法询问应用程序的该部分是否已被使用。包括?
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
或
这里有一个替代的帮助-。正如上面提到的@sampierson,这个问题很棘手——他的方法也应该有效。通过反复试验,你应该在足够多的冲突之后覆盖大多数案例
MyModel.new.respond_to? :status