是否可以为属性指定列?我有类似的东西:
NAME, COUNTRY
数据库非常大,我有一千多个这样大写的列。我想这样称呼它们:
attr_accessible :name, :country
其中 :name = 列名称。我更喜欢 Model.name 而不是 Model.NAME。不可能将结构文件中的每个列名都小写。
是否可以为属性指定列?我有类似的东西:
NAME, COUNTRY
数据库非常大,我有一千多个这样大写的列。我想这样称呼它们:
attr_accessible :name, :country
其中 :name = 列名称。我更喜欢 Model.name 而不是 Model.NAME。不可能将结构文件中的每个列名都小写。
这是一个按照您喜欢的方式做的想法。
生成迁移的命令:(
在我的示例中,我将其应用于Posts
表。根据您的表名进行更改)
rails g migrate RenameColumnsOfPosts
下面是迁移up
方法。这里取所有列名,并为我申请的每一个列名,rename_column
使其小写。
class RenameColumnsOfPosts < ActiveRecord::Migration
def up
Post.columns.map(&:name).each do |column_name|
rename_column(:posts, column_name, column_name.downcase)
end
end
def down
#You can do the opposite operation here. Leaving on you
end
end
由于我没有亲自运行它,它可能需要一些更改。所以从它开始,如果遇到任何问题,请告诉我。
Please write code inside of model ,
it's just for demostration code,after you get it and update as per logic :
This Code inside of model :
...
attr_accessor :name,:country
before_save :fill_save
..
#assign variable like ...
def fill_save
self.NAME= self.name
self.COUNTRY= self.country
end
....