我有类似的问题,它一遍又一遍地重复。当我们最好的想法已经是ruby或rails中的关键字时,如何命名模型字段?
例如我有一个名为Task的模型,我希望将boolean字段命名为public或private。有趣的事实是,我可以做到这一点,虽然公共和私人是ruby类中使用的单词。我可以将名称更改为public_task或private_task,但是我有例如task.public_task看起来不太好。
另一个例子是当我想命名boolean field default并给它默认值true / false。 然后我在迁移文件中:
add_column :tasks, :default, :boolean, default: true
在类似情况下我该怎么办?我应该使用这些单词,添加另一个单词,还是最好寻找不那么有意义的同义词?
答案 0 :(得分:2)
private
或public
或default
列名称都不会导致编程问题。
它唯一会造成混乱:)
您将无法定义范围,例如以下将导致异常:
class MyClass < ApplicationRecord
scope :private, -> { where(private: :some_value) }
end
#=> ArgumentError: You tried to define a scope named "private" on the model "MyClass", but Active Record already defined a class method with the same name.
约会 尽管存在与避免上述事情相关的潜在困难,但仍决定这样做 - 这不会伤害任何人。不是以编程方式进行最低限度的。