0

このコードの何が問題なのですか? そして、このコードを実行する方法は? ruby初心者なので詳しく教えてください。助けてください!!!

my_connection_base.rb

class MyConnectionBase < ActiveRecord::Base

client = Mysql2::Client.new(:host => "localhost", :database => "flipkart_project_development", :table => "users" , :username => "flipkart_project", :password => "mypass")

results = client.query("SELECT * FROM users")

結果を出す

終わり

4

2 に答える 2

0

与えられたコードはオンデマンドで実行するのが難しく、モデルがロードされたときに実行されます。メソッドに配置する必要があります。

class MyConnectionBase < ActiveRecord::Base   
  def some_method
    client = Mysql2::Client.new(:host => "localhost", :database => "flipkart_project_development", :table => "users" , :username => "flipkart_project", :password => "mypass")
    results = client.query("SELECT * FROM users")
    puts results
  end
end

これは、コントローラーで呼び出すことができますMyConnectionBase.some_method。しかし、なぜこれをやりたいのか、私には完全にわかりません。すべて Rails の方法で行う方がはるかに優れています (上記の私のコメントを参照してください)。

于 2012-07-30T12:28:46.693 に答える
0

Rails では、生の SQL クエリを記述する必要はありません。

以下のように、すべてのデータベース構成を config/database.yml ファイルに入れるだけです。

development:
  adapter: mysql2
  database: flipkart_project_development
  username: flipkart_project
  password: yourpass
  pool: 5
  timeout: 5000
test:
  adapter: mysql2
  database: flipkart_project_test
  username: flipkart_project
  password: yourpass
  pool: 5
  timeout: 5000

production:
  adapter: mysql2
  database: flipkart_project_production
  username: flipkart_project
  password: yourpass
  pool: 5
  timeout: 5000

Rails は、接続の確立とクエリの実行を処理します。

あなたの場合、userという名前のモデルを生成します

 rails g model user

プロジェクトでは、以下のようにすべてのユーザーを取得できます。

User.all
#This will generate the SQL query "select * from users" 
#and will return the records as user objects.

移行も参照してください。

于 2012-07-30T10:30:01.867 に答える