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

mysql - 使用外国人 gem 指定客户外键列名

我有 2 个模型,员工和用户具有 has_one,belongs_to 关系。用户表有一个“登录”列,它只需是雇员表中的“emp_id”值。我试图通过以下迁移来捕捉这种关系:

但是当我尝试运行此迁移时,我收到一条错误消息:

我以为我也可以指定外国列名,这不可能吗?

0 投票
1 回答
364 浏览

ruby-on-rails - Ruby on Rails - 外键(外国人 gem)

我是 RoR 的新手,所以不要对我可能会说的愚蠢的事情感到惊讶......提前抱歉......

我正在尝试在两个模型“附录”和“合同”之间创建外键约束

ActiveRecord 现在是这样的

因此,我需要该程序仅在将与现有合同相关联时才允许创建新的附录。我已经安装了 gem foreigner并创建了这个迁移:

运行rake db:migrate

并期望在 ActiveRecord::Base 上看到更改(指示外键约束),但不会发生更改

我究竟做错了什么?

0 投票
3 回答
40020 浏览

ruby-on-rails - 外国人 - 删除外键

我正在尝试在我的 rails 4 应用程序中使用邮箱。当我尝试部署数据库时出现问题。创建邮箱会话表时发生错误,该表在通知表中具有依赖关系。

我正在尝试删除通知对话的外键。

我创建了一个迁移,它说:

但是,rake 中止并说外键不存在。

我的架构包括:add_foreign_key “notifications”、“conversations”、名称:“notifications_on_conversation_id”

我试图 rake db:migrate:down 创建邮箱的原始迁移,但也收到一条错误消息,提示“找不到命令”。

任何人都可以帮忙吗?谢谢你。

0 投票
1 回答
967 浏览

ruby-on-rails - 如何在 Rails 中使用具有外键约束的数据库中的测试和夹具?

我正在使用 Rails 4.1 和 PostgreSQL,并且正在使用foreigner gem来创建外键约束。但是我在固定装置方面遇到了一些问题。

当我运行时:

我收到如下错误:

我找到了一种解决方法:重新创建数据库:

当我尝试使用rake db:fixture:load.

我已经尝试在 中更改夹具加载顺序test_helper.rb,但这还不够。

有人知道如何解决吗?我在网上搜索了很多并没有找到解决方案。

0 投票
0 回答
52 浏览

ruby - 耙中止!NoMethodError:ActiveRecord::SchemaDumper:Class 的未定义方法“alias_method_chain”

当我在 gemfile 中添加外国人 gem 时,我正在将 rails 4.1 升级到 6.1:任何解决方案都可以快速发布,否则您可以邮寄到 santu.essence@gmail.com

/usr/local/bundle/bundler/gems/foreigner-0496762a6c0a/lib/foreigner/schema_dumper.rb:6:in block in <module:SchemaDumper>' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/concern.rb:136:in class_eval' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/concern.rb :136:in append_features' /usr/local/bundle/bundler/gems/foreigner-0496762a6c0a/lib/foreigner/loader.rb:9:in include '/usr/local/bundle/bundler/gems/foreigner-0496762a6c0a/lib/foreigner/loader.rb:9:in block in load' /usr/local/bundle/bundler/gems/foreigner-0496762a6c0a/lib/foreigner/loader.rb:8:in class_eval'/usr/local/bundle/bundler/gems/foreigner-0496762a6c0a/lib /foreigner/loader.rb:8:in load' /usr/local/bundle/bundler/gems/foreigner-0496762a6c0a/lib/foreigner/railtie.rb:5:in block (2 levels) in class:Railtie' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:71:in class_eval' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:71:in block in execute_hook' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:61:in with_execution_control' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:66:in execute_hook' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb :52:在block in run_load_hooks' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:51:in 每个' /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:51:in run_load_hooks' /usr/local/bundle/gems/activerecord-6.1.4.1/lib/active_record/base.rb:315:in module:ActiveRecord' /usr/local/bundle/gems/activerecord-6.1.4.1/lib/active_record /base.rb:15:in<top (required)>' worker_1 | /usr/local/bundle/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in 需要'worker_1 | /usr/local/bundle/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:inrequire' worker_1 | /usr/local/bundle/gems/activerecord-6.1.4.1/lib/active_record/railtie.rb:132:in 类中的块(3 级):Railtie'worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:71:in class_eval' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:71:in block in execute_hook' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:61:in with_execution_control' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:66:in execute_hook'worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:43 :在block in on_load' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:42:in 每个'worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:42:on_load' worker_1 | /usr/local/bundle/gems/activerecord-6.1.4.1/lib/active_record/railtie.rb:131:in 类中的块(2 级):Railtie'worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:68:in block in execute_hook' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:61:in with_execution_control' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:66:in execute_hook' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:52:in block in run_load_hooks' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:51:in each' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/lazy_load_hooks.rb:51:in run_load_hooks'worker_1 | /usr/local/bundle/gems/railties-6.1.4.1/lib/rails/application/finisher.rb:140:in block in <module:Finisher>' worker_1 | /usr/local/bundle/gems/railties-6.1.4.1/lib/rails/initializable.rb:32:in instance_exec' worker_1 | /usr/local/bundle/gems/railties-6.1.4.1/lib/rails/initializable.rb:32:inrun' worker_1 | /usr/local/bundle/gems/railties-6.1.4.1/lib/rails/initializable.rb:61:in 块在 run_initializers'worker_1 | /usr/local/bundle/gems/railties-6.1.4.1/lib/rails/initializable.rb:60:inrun_initializers' worker_1 | /usr/local/bundle/gems/railties-6.1.4.1/lib/rails/application.rb:391:in 初始化!' worker_1 | /usr/src/app/config/environment.rb:4:in<top (required)>' worker_1 | /usr/local/bundle/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in 需要'worker_1 | /usr/local/bundle/gems/zeitwerk-2.5.1/lib/zeitwerk/kernel.rb:35:in require' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:332:in block in require'worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:299:inload_dependency' worker_1 | /usr/local/bundle/gems/activesupport-6.1.4.1/lib/active_support/dependencies.rb:332:in 需要'worker_1 | /usr/local/bundle/gems/railties-6.1.4.1/lib/rails/application.rb:367:in require_environment!' worker_1 | /usr/local/bundle/gems/railties-6.1.4.1/lib/rails/application.rb:533:in block in run_tasks_blocks'worker_1 | /usr/local/bundle/gems/rake-13.0.6/exe/rake:27:in `<top (required)>' worker_1 | 任务:TOP => resque:work => resque:preload => resque:setup => environment worker_1 | (通过使用 --trace 运行任务查看完整跟踪)