私は小さなrubyスクリプトを作成しました。このスクリプトは、それ自体をmysqlデータベースに接続し、テーブルを作成します(このテーブルがまだ存在しない場合)。この後、スクリプトはこのテーブルにコンテンツを保存する必要があります。次を使用してこのデータを保存しようとします。
Table.create(:foo => "bar", :foobar => "something", :blallala => "blololl")
私も試しました
Table.new(:foo => "bar", :foobar => "something", :blallala => "blololl")
しかし、私は常にエラーが発生するため、同じように見えます。
Mysql :: Error:Table'my-username.my-dbname'が存在しません:SHOW FULL FIELDS FROM table-name
だからこれは私がこれまでに得たものです:
ActiveRecord::Base.establish_connection(
:adapter => "mysql",
:host => "localhost",
:username => "my-username",
:password => "my-password",
:database => "my-db-name",
:encoding => "UTF8"
)
table_name = "my_table"
unless ActiveRecord::Base.connection.tables.include? table_name
ActiveRecord::Schema.define do
create_table :"#{table_name}" do |table|
table.column :foo, :string
table.column :bar, :string
table.column :blallala, :string
end
end
end
class Table < ActiveRecord::Base
self.table_name = "#{table_name}"
end
Table.create(:foo => "bar", :foobar => "something", :blallala => "blololl")
#Table.new(:foo => "bar", :foobar => "something", :blallala => "blololl")
したがって、質問は次のとおりです。実際に列/行を作成するにはどうすればよいですか。また、なぜ機能しTable.create(:foo => "bar", :foobar => "something", :blallala => "blololl")
ないのですか。