0

属性の列を指定することはできますか? 私は次のようなものを持っています:

NAME, COUNTRY

データベースは非常に大きく、このように大文字で始まる 1000 を超える列があります。私はそれらを次のように参照したい:

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 に答える