問題タブ [foreigner]

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.

0 投票する
2 に答える
301 参照

sql-server - Ruby on Rails Foreigner プラグインが SQL Server で機能しない

さて、ついに愚かな ODBC の構成が完了したので、Postgres データベースからダンプした schema.rb ファイルを取得し、db:schema:loadSQL Server 用に構成された Rails プロジェクトでそれを実行しました。

さて、SQL Server データベースのすべてのスキーマを設定しますが、細かい点を除きます。つまり、外部キーは作成されません。

rake コマンドはエラーを表示せず、外部キーを追加していると言っています。しかし、それらは実際には追加されません。これは、コマンドの最後のビットです。

それで、問題は何ですか?Foreigner プラグインは SQL Server で動作しませんか? そうでない場合は、エラーか何かが表示されると思います...

0 投票する
1 に答える
696 参照

ruby-on-rails - テーブルに外部キーを追加する

私はこの例外を受け取り続けます:"SQLite3::SQLException: no such column: books.user_id: SELECT "books".* FROM "books" WHERE ("books".user_id = 4)"。これは、booksテーブルにuser_idがないように聞こえます。

そこで、Foreignerプラグインをインストールして、ブック移行ファイルに追加"t.integer :user_id, :null => false"しました。"add_foreign_key(:books, :users)"実行しまし"rake db:migrate"たが、それでも同じ例外が発生します。

WindowsとDeviseでRails3を使用してユーザーを認証しています。

ホームビュー

ホームコントローラー

ブックコントローラー

テーブル/ブックの移行を作成する

ブックビュー

ブックモデル

ユーザーモデル

ROUTE Campus::Application.routes.drawは「book/index」を取得します

データベーススキーマ

0 投票する
2 に答える
81 参照

mysql - テーブルを削除する予定がある場合、外部キー/インデックスを個別に削除することは必須ですか?

テーブルを削除する予定がある場合、外部キー/インデックスを個別に削除することは必須ですか? テーブルを削除すると、外部キー/インデックスが削除されるようです。

この宝石http://github.com/matthhiggins/foreignerを使用して、外部キー/インデックスの作成/削除を削除しています。add_foreign_keyforeign_key と index を作成しているようです。それは、self.downでインデックス/外部キーを個別に削除する必要があるということですか、それとも単にテーブルを削除できますか?

0 投票する
1 に答える
1821 参照

ruby-on-rails-3 - Rails Foreigner: MySQL を使用した「テスト」DB の外部キー制約

RailsでForeignerを使用して外部キー制約を有効にしようとしています。開発用 DB で動作していますが、テストを実行しようとすると次のエラーが発生します。

奇妙なことに、テストは正常に実行され、最後にこのエラーが発生します。

私が MySQL (および mysql2 アダプター) を使用していることに気づかずに、Foreigner がテスト DB に SQLite 構文を使用しようとしていると思われます。テストデータベースに MySQL を使用していることを Foreigner に伝える方法はありますか?

0 投票する
1 に答える
83 参照

ruby-on-rails-3 - Rails 外国人プラグイン

私のユーザー テーブルには role_id が必要です (私のテーブルにはまだ追加されていません) 私のロール テーブルはデフォルトのプライマリ ID を使用しています: id

私は現在、次のような外国人プラグインを使用しようとしています...

しかし、私のエラーは次のように言っています: Mysql2::Error: Key column 'role_id' does not exist in table: ALTER TABLE usersADD CONSTRAINT users_role_id_fkFOREIGN KEY ( role_id) REFERENCES roles(id)

何が起こっている??私は何が欠けていますか?

0 投票する
1 に答える
1204 参照

mysql - SQLiteの移行により、schema.rbファイルから「add_index」と「add_foreign_key」が削除されます

同じRailsプロジェクトで2台の異なるコンピューターでSQLite3とMySQLを使用しています。schema.rbすべての移行を実行したときに生成されるものは、両方の環境で異なって見えることに気付きました。SQLite3環境で移行を実行すると、次のステートメントがファイルから削除さschema.rbます。

とで移行を拡張する外国人の宝石を使用していることに注意してください。add_foreign_keyremove_foreign_key

問題に関連する移行とモデルは次のとおりです。

..。

..。

..。

質問: SQLite3とMySQLの両方がそれを処理できる方法で、usersそれらの間の関係をどのように定義できますか?places

0 投票する
3 に答える
1893 参照

ruby-on-rails - なぜ誰かが外国人の宝石を使うのでしょうか?

人々がこの宝石を使用し、多くの人がそれを愛しているため、これはおそらく初歩的な質問ですが、目的がわかりません。私はプロジェクトを見ていますが、ここではt.references :foreign_key_table_name , :foreign_key => true、 、add_foreign_key :table :foreign_key_table_name, :options、および createなどの場所で何度も使用されていますt.foreign_key :foreign_key_table_name。文脈から外れているため、混乱しないことを願っています。

しかし、これがレールに組み込まれているものとどのように異なるのか、t.references :foreign_key_table_nameまたは単に追加するだけではわかりませんt.integer :foreign_key_table_name_idか? これが「外部キー」であることを明確にすることで、読みやすくするだけですか?その場合は、宝石の代わりにコメントを追加することもできます...私が見る唯一の利点は:dependent、モデルに含めるのではなく、移行などのオプションを移動できることですが、誰が気にしますか?

0 投票する
1 に答える
827 参照

ruby-on-rails - Herokuで移行を実行すると、PG :: Error:ERROR:リレーション"member1_id"が存在しません。

ローカルでは、移行は問題ありません(SQLiteを使用していますが、開発時にできるだけ早くpostgresqlに切り替えます)。

Herokuのデータベースをリセットした後

走った

しかし、移行後に次のエラーが発生します。

その移行は次のとおりです。

コラボレーションの以前の移行は

この順序で実行されます。このエラーがHerokuで発生するのはなぜですか?具体的には、PGが「member1_id」に不要な「_id」を追加しているようです。

0 投票する
1 に答える
955 参照

ruby-on-rails - 外国人の宝石はどのように機能しますか?

私は外国人の宝石を見て、いくつかの外部キーを作成しようとしています。ただし、宝石のドキュメントには、この `add_foreign_key(from_table, to_table, options) のように外部キーを作成する必要があると書かれていますが、それを行うと、逆に機能するようです。たとえば、Entry、Ingredient、および EntryIngredient という 3 つのモデルがあります。Entry は EntryIngredient を通じて多数の Ingredient を持ち、Ingredient は EntryIngredients を通じて多数の Entries を持ち、EntryIngredient はこれらの両方に属します。それでも、これは機能するコードです:

ドキュメントによると、外部キーは実際には次のように追加する必要があると思います。

しかし、移行を実行すると、

誰かがここで何が起こっているのか説明できますか? なぜ私は失読症なのですか?