0

Railsモデルの1つにわずかな問題があります。それは私が回避できないことではありませんが(私はすでにそうしています)、実際の問題に興味があります。

基本的に、「establish_connection」を使用してリモートデータベースに接続した「Events」という名前のActiveRecordベースのクラスがあります。すべて正常に動作し、「Event.find(:all)」を実行することもできます。ただし、便利な(column_name)メソッドを使用できません。私は次のようなことをしなければなりません:

for each event in Event.find(:all)
  puts event["Point"]
  puts event["Timestamp"]
end

...それ以外の

for each event in Event.find(:all)
   puts event.point
   puts event.timestamp
end

参考までに、モデルを生成したときは、「スクリプト/モデル生成イベント」のみを実行し、他には何も実行しませんでした。次に、接続を取得するために、モデル内で「establish_connection」と「set_table」を使用しました。それ以外は何もしていません。繰り返しますが、クエリは機能しますが、便利なアクセスができません。

アイデア?

一番。

4

2 に答える 2

2

大文字化の問題があるようです - 列が大文字化されているため、ActiveRecord は大文字化された属性を作成します。event.Pointの代わりに行うと、2 番目の例が正しく機能する可能性がありますevent.point。小文字バージョンを使用したい場合は、ActiveSupport の alias_attribute を使用できる場合があります。

alias_attribute :point, :Point
alias_attribute :timestamp, :Timestamp

...等。

于 2009-06-09T05:56:52.097 に答える
0

alias_attributeとは別に

そのリモートデータベースを制御し、変更を加えることができるそのアプリケーションにアクセスできる場合。

ActiveResourceを使用できます。これは、リモートモデルのようなものにアクセスするための非常にクリーンな方法です。

http://railscasts.com/episodes/94-activeresource-basics

http://railscasts.com/episodes/95-more-on-activeresource

于 2009-06-09T07:42:41.023 に答える