問題タブ [sqlite3-ruby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sinatra - 方法:DataMapperでの単一テーブル継承?
私はSinatra(1.3.2)を学習しており、 DataMapper(1.2.0)をORMとして使用し、インメモリSQLite(1.3.6)DBを使用して開始することを選択しました。
2つのモデルBooks
とDownloads
がほとんどの属性を共有しているため、DataMapperでSTI(単一テーブル継承)のモデルを宣言することを検討しました。ドキュメントを読むと、 Types::Discriminatorのおかげでこれは簡単なことのようです。
私はすべての一般的なものを次のように抽象化しましたDownloadableResource
:
例に従って、拡張する必要があるものを指定するのと同じくらい簡単だと思いました。
と
しかし、これは私に次のエラーを与えていました:
DataObjects :: SyntaxError:重複列名:id(コード:1、sql状態:、クエリ:ALTER TABLE " downloadable_resources " ADD COLUMN "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT、uri:sqlite3 :: memory:?scheme = sqlite&user = &password =&host =&port =&query =&fragment =&adapter = sqlite3&path =:memory :)
IDを削除しているときに、別の(明らかな)エラーが発生しました:
DataMapper :: IncompleteModelError:DownloadableResourceには、有効であるためのキーが必要です
include DataMapper::Resource
との両方に追加するBook
ことでこれを回避し、Download
有効Book
にするためにキーが必要になりました。これは次のようになります。
同じことが当てはまりますがDownload
、問題は次のとおりです。
DataObjects :: SyntaxError:重複列名:id(コード:1、sql状態:、クエリ:ALTER TABLE " books " ADD COLUMN "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT、uri:sqlite3 :: memory:?scheme = sqlite&user = &password =&host =&port =&query =&fragment =&adapter = sqlite3&path =:memory :)
私が輪になっていくように感じ始めましたが、DataMapperで単一テーブル継承を実装する適切な方法は何ですか?
PS:私は見ました
しかし、私はまだこの問題を抱えています。
ruby-on-rails - Rails Scaffolded の参照は、大量割り当ての制限により保存されません
私はレールにまったく慣れていないので、これがばかげた質問である場合はご容赦ください。間違って開始したかどうかを判断するのに十分な答えをまとめることができません。ここに行きます。
私は自分の
Company
モデルに関連するすべてをrails g scaffold Company name:string description:text location_city:string location_state:string accounttype:references
私は
Accounttype
モデルに関連するすべてを作成しましたrails g scaffold Accounttype id:primary_key name:string price:decimal
したがって、私の
Company
モデルには次の許容値が含まれています。belongs_to :accounttype
attr_accessible :description, :location_city, :location_state, :name
足場で生成された会社の編集フォームに移動し、それらのフィールドにデータを入力すると、エラーがスローされます。
Can't mass-assign protected attributes: accounttype
に追加
:accounttype
すると、次のリクエスト パラメータattr_accessible
がスローされます。Accounttype(#70175254242100) expected, got String(#70175215042700)
{"utf8"=>"✓", "authenticity_token"=>"oXm3cqo0jemKYFB5OGqn5ixXLSB+bH19/1RhPUu0ZHU=", "company"=>{"name"=>"Acme Corp", "description"=>"a", "location_city"=>"san diego", "location_state"=>"california", "accounttype"=>"1"}, "commit"=>"Create Company"}
:references
それで、私が2つのモデルをリンクするために使用したのは私の問題ですか?それを使用しても問題ない場合、作成/更新を機能させるにはどうすればよいですか?
ruby - rspecのみを使用すると、sqlite3/data_mapperは常に時間を00:00:00として節約します
data_mapper と sqlite3 と rspec を使用して時間を節約するという特有の問題があります
以下の仕様を実行すると、この失敗レポートが表示されます
ファイルを手動でirbに保存しようとすると、
要約すると、文字列を取得して分割し、新しい Time オブジェクトに挿入する rspec テストを実行すると、Time 部分が誤って 00:00:00 として保存されます。
また、テストの実行後に、テストされたレコードの db を確認すると、時間が 00:00:00 として誤って保存されていることも確認できます (念のため、rspec の比較または db の取得で何かを疑っている場合に備えて)オフでした :) )
これの真相を知りたいのですが、本当にイライラしています。特に日付はあまり気にしないことを考えると(しかし、今興味をそそられたのでこれを解決したいと思います;))
また、データベースへの時間を節約するためのより良い方法があれば、提案をお待ちしています。ありがとう!
life_dm.rb
sleep.rb
sleep_spec.rb
gem - gem install sqlite3 -v '1.3.7'
これでsqlite3をインストールしようとすると->gem install sqlite3 -v '1.3.7'
このエラーが表示されます:
ネイティブ拡張機能の構築。これには時間がかかる場合があります... エラー: sqlite3 のインストール中にエラーが発生しました: エラー: gem ネイティブ拡張機能をビルドできませんでした。
NotImplementedError: C 拡張サポートが有効になっていません。JRuby に -Xcext.enabled=true を渡すか、JRUBY_OPTS を設定するか、.jrubyrc を変更して有効にします。
(root) at /home/arthur/.rvm/rubies/jruby-1.7.2/lib/ruby/shared/mkmf.rb:8 require at org/jruby/RubyKernel.java:1027 (root) at /home/arthur /.rvm/rubies/jruby-1.7.2/lib/ruby/shared/rubygems/custom_require.rb:1 (ルート) extconf.rb:3
Gem ファイルは検査のために /home/arthur/.rvm/gems/jruby-1.7.2/gems/sqlite3-1.3.7 にインストールされたままになります。結果は /home/arthur/.rvm/gems/jruby-1.7.2/gems/sqlite3-1.3.7/ext/sqlite3/gem_make.out に記録されます
ruby - data_mapper(Ruby 1.8.7)で実行しているときにDataObjects ::ConnectionErrorを解決するにはどうすればよいですか?
このコードを実行すると
このエラーがスローされます
DataObjects :: ConnectionError:データベースファイルを開くことができません(コード:14、SQL状態:、クエリ:、uri:)。
線に文句を言っているようDataMapper.finalize.auto_migrate!
です。
私がpersonクラスをコメントアウトすると、コードは、多少役に立たないものの、正常に実行されます。
エラーが発生しているOSはLinuxMageia2です。Ruby1.9.3を実行しているWindowsXPとWindows7でこれを正常に実行しましたが、問題は古いルビーバージョンがOSではなく古いバージョンであると思われます。
また、ファイルを含むフォルダーのアクセス許可が非常に開いている(-rwxrwxrwx)ことを伝えることはおそらく重要です(日常的に使用するためにこれを開くことはおそらく実用的ではありませんが、data_mapperを機能させるために必死です) 。
興味深いかもしれない他の仕様は次のとおりです私のローカルgemssqlite3(1.3.7、1.3.3)sqlite3-ruby(1.3.3)data_mapper(1.2.0)
ここには変更できる変数がたくさんあることを理解しています。私はこれを最初にそこに置いて、私が途方もなく行方不明になったのは単純な修正であるかどうかを確認すると思いました:)
ruby-on-rails - rspec でテストするとエラーが発生する:「sqlite3 アダプターをインストールしてください」 - railstutorial.org
こんにちは、私はこの男のような同じ問題を抱えています: Ruby Guard の質問 - 'sqlite3 アダプターをインストールしてください' - railstutorial.org
「bundle exec rspec spec/requests/static_pages_spec.rb」を実行すると、次のようになります。
しかし、私の database.yml は次のようになります。
ここで何を変更する必要がありますか? または、私が見ることができない別の問題がありますか?
PS: postgreSQL をインストールしたので、database.yml の開発パッセージを変更しました。そして、gemfile は次のようになります。
ruby-on-rails - ruby on railsとcmdのSqlite3
名前の建物のテーブルがあり、列を忘れたので削除したいと思います。cmd でフォルダに移動し、「sqlite3」、「.tables」と入力しても何も表示されません。どうして?そして、私は何ができますか?
ruby-on-rails - ROR を ubuntu 12.04 にインストールするには? sqlite3 でエラーが発生する
私はRORが初めてです。RORをインストールしようとしているとき。rails( rails s
) を起動しようとすると、次のようなエラーが発生します。
ruby-on-rails - Ruby on Rails、データベースでの検索を高速化する方法
次のフィールドを持つテーブル製品があります:code-string、id-integer
私のテーブルには500万行以上あります。
モデルでは、次のコードを使用します。
結果を見つけるのに2秒かかります。
検索時間を短縮する方法はありますか?
私はデータベースとしてrails3.2.11、ruby 1.9.3、sqlite3を使用しています
UPD
変更されたモデルコード
jdbc - JRubyとSQLite3
次のgemを使用してJRubyとSQLite3を動作させようとしています。
bouncy-castle-java(1.5.0146.1)
バンドラー(1.3.2)
dbd-jdbc(0.1.6 java)
dbi(0.4.5)
非推奨(2.0.1)
jdbc-sqlite3(3.7.2.1)
jruby-launcher(1.0.15 java)
jruby-openssl(0.8.2)
json(1.7.7 java)
ラック(1.5.2)
ラック保護(1.4.0)
熊手(10.0.3)
rubygems-bundler(1.1.1)
rvm(1.11.3.6)
シナトラ(1.3.5)
sqlite3(1.3.7)
傾斜(1.3.5)
そしてこのコード:
しかし、私はこのエラーがあります:
DBI :: InterfaceError:ドライバー'jdbc'を読み込めません(根本的なエラー:間違った定数名jdbc)/home/gl/.rvm/gems/jruby-1.7.3/gems/dbi-0.4.5/lib/dbiのload_driver .rb:300 mon_synchronize at /home/gl/.rvm/rubies/jruby-1.7.3/lib/ruby/1.9/monitor.rb:211 load_driver at /home/gl/.rvm/gems/jruby-1.7.3 /gems/dbi-0.4.5/lib/dbi.rb:242 _get_full_driver at /home/gl/.rvm/gems/jruby-1.7.3/gems/dbi-0.4.5/lib/dbi.rb:160 connect /home/gl/.rvm/gems/jruby-1.7.3/gems/dbi-0.4.5/lib/dbi.rb:145(ルート)のsrv.rb:6
アイデアはありますか?