1

Rails では、次のように単純に使用します。

MyModel.column_names

テーブルの列名にアクセスする必要がありますが、(Ruby をよりよく学ぶために) Sinatra で最初の手探りに耐えており、テーブルの列名を配列に取得する必要があります。

以前、params ハッシュを繰り返し処理して、キーと値のペアを抽出しました。

params.each do |key, value|
  #manipulate keys and values
end

そして、次を使用してそれを知っています:

@mm = MyModel.new
@mm.each do ....

未定義のメソッド「各」エラーが発生します。

logger.info @mm.inspect

次のようなログを記録します。

#<MyModel @id=nil @start=nil @end=nil @yada=nil @created_at=nil @updated_at=nil @foreign_id=nil>

では、どうすれば、非常にはっきりと見える爆破された列名を配列に入れることができるでしょうか?

ありがとう...

アップデート

Datamapper プロパティで正しい方向を示してくれた Doon に感謝します。

私は最終的にプライベートメソッドcolumn_namesを作成しました:

def self.column_names
  self.properties.collect {|column| column.name.to_s }
end

御馳走を働かせる

4

2 に答える 2

2

お探しpropertiesですか?

http://rubydoc.info/gems/dm-core/1.1.0/DataMapper/Model/Property

于 2013-02-13T18:52:26.887 に答える
0

どの Ruby オブジェクトにも、instance_variablesそのオブジェクトの属性の配列を返すメソッドがあります。それはあなたにとってあまりにも一般的ですか?私は DataMapper に精通していません。ActiveRecord と同等のことを行う特定の方法があるかもしれませんcolumn_names

于 2013-02-13T18:46:20.253 に答える