0

是否可以为属性指定列?我有类似的东西:

NAME, COUNTRY

数据库非常大,我有一千多个这样大写的列。我想这样称呼它们:

attr_accessible :name, :country

其中 :name = 列名称。我更喜欢 Model.name 而不是 Model.NAME。不可能将结构文件中的每个列名都小写。

4

2 回答 2

1

这是一个按照您喜欢的方式做的想法。

生成迁移的命令:(
在我的示例中,我将其应用于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

由于我没有亲自运行它,它可能需要一些更改。所以从它开始,如果遇到任何问题,请告诉我。

于 2012-10-15T05:49:55.787 回答
0
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
....
于 2012-10-15T03:57:16.613 回答