• ベストアンサー

Ruby on rails のモデルオブジェクト

Ruby on Rails を勉強しているんですが、細かいところで @member = Member.find(1) という風に作成したモデルオブジェクトについてですが、 @memberとういう変数から、Memberモデルの主キー名を取得することができるでしょうか。 ※または、@memberから、Memberクラスが取得できるか。 @member.reflectionsなど、いろいろためしましたができませんでした。 お分かりの方がいらっしゃいましたら、是非お教え願えないでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.1

@member.class => Member Member.primary_key => "id" な感じ。

graf_
質問者

お礼

万事うまくいきました。 即答感謝です。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

@member.class でそのMemberクラスが取得できます。

graf_
質問者

お礼

即答、感謝です。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Ruby on Rails に関する質問です。

    Ruby on Rails でデータベースにあいまい検索を複数条件でかけたいのですが、どのようにしたらよいのでしょうか?? def find   @bookinfo= Bookinfo.find(:all, :conditions => ["title like ?" => ["author like ?", "%#{params[:key]}%"]]) render :action => 'result.html.erb' end このような感じで複数のあいまい検索をかけたいのですがどのようにすればよいのか教えてください。 お願いします。SQLite3を使用しています。

    • ベストアンサー
    • Ruby
  • Ruby on Railsのmigrateについてです!

    初めまして、Ruby on Rails初心者の者です。 現在modelを5つ作成してあります。 そこで新たにmodel(6)を作成(コマンドプロンプトにて)したのですが、記述ミスがあったので今作成されたmodel(6)を削除しました。(データーベースからも) で、また同じ名前で作成したのですがエラーが何も表示されず、コマンドが入力できる状態になってしまいます。 ruby script/generate model モデル名  ↓正常 rake db:migrate  ↓何も表示されない コマンドが入力可能状態になる 何が原因なのでしょうか? 調べたのですが、私には分からずとても困っています 分かる方居ましたら、回答お願い致します。

    • ベストアンサー
    • Ruby
  • Ruby on Rails について

    Ruby on Railsでアプリケーションを作ります。 バージョンは:InstantRails-2.0-win 1、データベース表の作成: データベース名:myapp   テーブル名:peoples データベースを作成したら、MySQLを再起動します。 2、新規アプリケーションの作成: アプリケーション名:myapp Instant RailsウィンドウのIボタン⇒Rails Applications⇒Manage Rails Applicationsをクリックします。 Rails ApplicationsダイアログボックスのCreate New Rails App・・をクリックします。 コマンドプロンプト画面が表示されます。 rails myapp を入力します。 コマンドプロンプトのプロンプトが入力状態になって、コマンドプロンプトを閉じます。 Rails ApplicationsダイアログボックスのRefresh Listボタンをクリックしたら、myappアプリケーション名が追加されます。 3、アプリケーション・モデルの作成: InstantRails-2.0-winフォルダ ⇒ rails_apps ⇒ myapp ⇒ config ⇒ datebase.yml ファイルを開きます。 ↓に書き換えます。 development: adapter: mysql database: myapp timeout: 5000 username: root host: localhost   Instant RailsウィンドウのIボタン ⇒ Rails Applications ⇒ Open Ruby Console Windowをクリックします。 コマンドプロンプトが開きます。 cd myapp ruby script/generate model people を入力します。 4、コントローラの作成: コマンドプロンプトを開きます。 cd myapp ruby script/generate controller people を入力します。 コマンドプロンプトを閉じます。 InstantRails-2.0-winフォルダ ⇒ rails_apps ⇒ myapp ⇒ app ⇒ controllers ⇒ people_controller.rb ファイルを開きます。 class PeopleController<Application Controller scaffold :people ←←追加した行です。 end 5、新しいアプリケーションを起動 Rails ApplicationsダイアログボックスのRails Applications 欄の myappの所をチェックし、Start with Mongrelボタンをクリックします。 コマンドプロンプト画面が起動し、ポート番号が表示されます。 Webブラウザを起動し、アドレス欄に 一つは: 「http://localhost:people/list」を入力し、Enterキーを押します。 ↓Errorメッセージが表示されました。 NoMethodError in PeopleController#list undefined method `scaffold' for PeopleController:Class RAILS_ROOT: C:/taiyo/INSTAN~1.0-W/rails_apps/myapp   一つは: http://localhost:3000/people Enterキーを押します。 ↓Errorメッセージが表示されました。 NoMethodError in PeopleController#index undefined method `scaffold' for PeopleController:Class RAILS_ROOT: C:/taiyo/INSTAN~1.0-W/rails_apps/myapp どこの手順が違ってるのが解らなくて、 Errorの解決方法ですごく困ってます。 どうかご指導をお願いいたします。 もう一つはErrorメッセージの3行目は C:/taiyo/INSTAN~1.0-W/rails_apps/myappですけど、 InstantRails-2.0-winフォルダのはずですけど、 INSTAN~1.0-Wフォルダになった原因がよくわからないです。 すごく困ってます。 ご指導お願いいたします。

  • Ruby on RailsとMySQLについて質問です。

    Ruby on RailsとMySQLについて質問です。 Railsの別プロジェクトで作成したデータベースへアクセスするには、どうしたらよいでしょうか? 例)Aプロジェクト、Bプロジェクトがあります。 Bプロジェクト:Aプロジェクトのデータベースへアクセスし、Aテーブルのデータを取得したい。かつ、Bプロジェクトで作成したデータベースへもアクセス可能であること。 知っている方がいましたら、ぜひご教示願います。

  • Ruby on Rails のインストールについて

    『基礎 Ruby on Rails』という本を読んでいますが、 インストールできずに困っています(Macintosh使用者です)。 macportsをダウンロードして、 ターミナルでRubyとRubyGemsを入れました。 そのあと、 sudo gem install rails --version "~> 3.2.3" --no-rdoc --no-ri を実行するとつぎのエラーが表示されてできない状態です。 ERROR: Could not find a valid gem 'rails' (>= 0) in any repository ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Errno::ECONNREFUSED: Connection refused - connect(2) (http://rubygems.org/latest_specs.4.8.gz) よろしくお願いします。

  • Ruby on Railsについて

    Ruby on RailsでWebアプリケーションを作成します。 下記の順でやりました。 1、データベース表を作成。 2、新規アプリケーションの作成。 3、作成したアプリケーションがどのデータベースを使うのかを教える。 4、モデルの作成。 5、コントローラの作成。 6、新しいアプリケーションを起動。 ここでコマンドプロンプト画面内に表示されるポート番号を確認し、 Webブラウザを起動し、 アドレス欄に[http://localhost:ポート番号/アドレスブック/アドレスブックのリスト] を記入しました。 エラーが表示されました。 NoMethodError in PeopleController#list undefined method `scaffold' for PeopleController:Class

  • Ruby on Rails ; model validationが動作しない等

    昨日からRoRで開発している初心者です。 移行するとアプリケーションが動かなくなりました。 開発機でruby on rails + lighttpd + fastcgi にて rails xxx ruby script/generate scaffold yyy ・・・ と開発を進めていました。 そして同様構成の本番機に移行したところ、validateが動かないなど 様々な不具合がでています。 移行方法  本番機でrailsコマンドを実行  xxx以下のファイルを全てコピー ファイルをコピーするだけだと動作しないのでしょうか? 不具合:  1:時々 unknown action がでる  2:varidate(model/...)が動作しない 対処? 1:script/generateコマンドの発行が必要? ただしい移行方法をどなたか教えていただけませんか?

  • Ruby on Railsでアプリケーションを作りたいんですが、phpMyAdminでデータベース表の作成がうまく行かないです。

    Ruby on Railsの利用できる環境を構築します。 Ruby、Rails、データベース、Webサーバの4つをまとめてセットにしてしまったソフト【InstantRails】を使用します。 バージョン:InstantRails-2.0-win.zip をダウンロードしました。 そこで、Ruby on Railsでアプリケーションを作成して見ます。 まずは、データベース表を作成します。 【Instant Rails】ウィンドウでApacheボタンをクリックし、メニューからStartを指定しましたが、Start状態に変わってないのです。 いろいろ調べましたが、原因がわかりません。 すごく困ってます。 ご指導をお願いいたします。

  • 【Ruby on Rails】モデルのメソッド「send」について

    最近Ruby on Railsを始めました。 モデルで使用しているメソッドでsendというものがありますが、 このsendとは何をしているものなのでしょうか? 私の感覚では @model.send("column=", xxxx) は @model.update_attribute(:column, xxxxx) と同義だと考えております。 ※ 一応ネットでも調べましたが、明確なことが記載されているサイトを見つけることができませんでした。。。 質問は 1.上記の考えは正しいでしょうか? 2.上記2つの違いはなんでしょうか? 3.sendを実行したとき、すぐにDBに反映されるのでしょうか? 4.sendについて詳しく記載されているサイトがあればご教授願います。 初心者で拙い説明で申し訳ありませんが、ご教授お願いいたします。

    • ベストアンサー
    • Ruby
  • Ruby on Railsでデータベースに接続できない。

    Ruby on Railsでデータベースに接続できない。 『RailsによるアジャイルWebアプリケーション開発(第3版)』 http://www.amazon.co.jp/Rails%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%ABWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-Sam-Ruby/dp/4274067858/ref=sr_1_1?ie=UTF8&s=books&qid=1279209371&sr=8-1 という本でRuby on Railsの勉強をしています。現在、「第10章チェックアウト」の136ページあたりで行き詰っています。 ActiveRecord::AssociationTypeMismatch in StoreController#save_orderのメッセージが表示されていますが、どうやらデータベースに接続できていないようです。 configのdatabase.yml等を色々試行錯誤してみたり、色々ググってみたりしましたが、解決できませんでした。 どうやったらデータベースに接続できるのでしょうか。恐らくInstantRails-2.0に予め入っているMySQLやApacheと別々に入れたMySQLやApacheと競合しているからでしょうか。InstantRails-2.0の入っているMySQLやApacheは停止しています。 また、別々に入れたMySQLの方にはマイグレーション(?)で問題なくデータベースやテーブルが作成されています。なのにデータベースに接続できていないようです。 もう一つ、Ruby on Railsについて文字コードはcontrollers,helpers,models,views等に入っているファイルは全てutf-8にしなければならないでしょうか。何かWindowsでRuby on railsを開発するとコマンドプロンプトの関係でShift-JISに依存しているような気がします。

    • ベストアンサー
    • Ruby