问题标签 [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 投票
3 回答
857 浏览

ruby-on-rails - 如何防止 Rails “复数”列名?

我正在使用 dwilkie 的foreigner插件用于 rails。我有一个表创建语句,如下所示:

但是,这会生成以下 SQL:

[4;35;1mSQL (2.7ms)[0m [0mCREATE TABLE "agents_games" ("agents_id" integer NOT NULL, "games_id" integer NOT NULL) [0m

我希望这些列被称为agent_idand game_id- not agents_idand games_id。如何防止 Rails 使列复数?


我在我的enviornment.rb文件中尝试了以下内容,但没有帮助:

0 投票
2 回答
301 浏览

sql-server - Ruby on Rails Foreigner 插件不适用于 SQL Server

好吧,现在我终于配置了愚蠢的 ODBC 东西,我从 Postgres 数据库中提取了一个 schema.rb 文件,并db:schema:load在为 SQL 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 中使用 Rails 3 并设计来验证用户。

主页视图

家庭控制器

图书控制器

创建表/书迁移

预订视图

书籍模型

用户模型

ROUTE Campus::Application.routes.draw 确实得到“书/索引”

数据库架构

0 投票
2 回答
81 浏览

mysql - 如果您打算删除表,是否必须单独删除外键/索引

如果您打算删除表,是否必须单独删除外键/索引。由于删除表似乎正在删除外键/索引。

我正在使用这个 gem http://github.com/matthuhiggins/foreigner来删除创建/删除外键/索引。add_foreign_key似乎创建了 foreign_key 和一个索引。这是否意味着我应该在 self.down 上单独删除索引/外键或者我可以删除表吗?

0 投票
1 回答
1821 浏览

ruby-on-rails-3 - Rails Foreigner:使用 MySQL 的“测试”数据库的外键约束

我正在尝试使用Foreigner在 Rails 中启用外键约束。它正在我的开发数据库上运行,但是当我尝试运行测试时出现以下错误:

奇怪的是,测试运行良好,最后我得到了这个错误。

我怀疑 Foreigner 正在尝试对测试数据库使用 SQLite 语法,却不知道我正在使用 MySQL(和 mysql2 适配器)。有没有办法告诉老外我正在使用 MySQL 作为测试数据库?

0 投票
1 回答
83 浏览

ruby-on-rails-3 - Rails 外国人插件

我的用户表应该有一个 role_id(尚未添加到我的表中)我的角色表使用了默认的主 ID:id

我目前正在尝试使用看起来像的外国人插件......

但我的错误是:Mysql2::Error: Key column 'role_id' doesn't 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 项目上使用 SQLite3 和 MySQL,但在两台不同的计算机上。我注意到,schema.rb当我运行所有迁移时生成的 which 在两种环境中看起来都不同。当我在 SQLite3 环境中运行迁移时,会从文件中删除以下语句。schema.rb

请注意,我使用了通过和扩展迁移的外国人 gemadd_foreign_keyremove_foreign_key

以下是与问题相关的迁移和模型:

...

...

...

问题:如何定义 SQLite3 和 MySQL 都可以处理的users关系places

0 投票
3 回答
1893 浏览

ruby-on-rails - 为什么有人会使用 gem 外国人?

这很可能是一个菜鸟问题,因为人们使用这种宝石并且很多人喜欢它,但我不明白目的。我正在查看一个项目,它已在此处多次使用,例如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。希望那些没有混淆,因为它们脱离了上下文。

但是我不明白这与内置的railst.references :foreign_key_table_name或我只是添加的有什么不同t.integer :foreign_key_table_name_id?它是否只是通过明确这是一个“外键”来使其更具可读性?如果是这样的话,我可以添加评论而不是宝石......我看到的唯一优势是您可以将选项移动:dependent到迁移中而不是在模型中,但是谁在乎呢?

0 投票
1 回答
827 浏览

ruby-on-rails - 在 Heroku 上运行迁移时,我得到 PG::Error: ERROR: relationship "member1_id" does not exist

在本地,我的迁移很好(尽管我使用的是 SQLite。将在开发时尽快切换到 postgresql)。

在 Heroku 上重置数据库后

我跑了

但是迁移后出现以下错误:

这是迁移:

以前的 Collaborations 迁移是

以该顺序运行。为什么 Heroku 会出现这个错误?具体来说,看起来 PG 正在向“member1_id”添加不必要的“_id”

0 投票
1 回答
955 浏览

ruby-on-rails - 外国人宝石是如何工作的?

我正在查看外国人宝石并尝试创建一些外键。但是,gems文档说您应该像这样创建外键 `add_foreign_key(from_table, to_table, options) 但是当我这样做时,它似乎向后工作。例如,我有 3 个模型,Entry、Ingredient 和一个名为 EntryIngredient 的关联。Entry通过EntryIngredient有很多的Ingredient,通过EntryIngredients有很多Entry,EntryIngredient属于这两者。然而,这是有效的代码:

通过文档,我认为实际上应该像这样添加外键:

但是当我运行迁移时,这会给我一个

有人可以向我解释这里发生了什么吗?为什么我有阅读障碍?