我是Rails的新手,我只是想知道你的模型中是否应该避免使用任何受保护的名称?例如,以下内容是否有效:
class CreateModel < ActiveRecord::Migration
def change
create_table :model do |t|
t.string :hash
t.integer :count
t.timestamps
end
end
end
我意识到财产可能不是一个好名字,但它是一个纯粹的例子。
编辑:所有答案都很好,但我选择了我接受的答案,因为它包含指向大量受保护属性的链接。
答案 0 :(得分:3)
避免使用类名,如果已定义:
!!defined? Class # => true
!!defined? Model # => false
避免在此列表中使用列名:
答案 1 :(得分:1)
我只记得两个:
type
,因为Rails将此属性视为多态对象中的一种父对象。order
以及任何其他SQL命令/语句/等,因为生成SQL查询的Rails正在使用它们,并且通常会发生异常。答案 2 :(得分:1)
我个人遇到了一个问题,我将模型命名为record
:
除此之外:
答案 3 :(得分:1)
我遇到了外部数据库和名为“hash”的列的问题。 可以通过以下方式忽略违规列:
class SomeClass < ActiveRecord::Base
class << self # Class methods
alias :all_columns :columns
def columns
all_columns.reject {|c| c.name == 'hash'}
end
end
end