我尝试运行迁移时收到以下信息:
NoMethodError: undefined method `column' for #<Foreigner::ConnectionAdapters::ForeignKeyDefinition:0x007fa020938740>
以下是迁移代码:
class CreateAdvertisement < ActiveRecord::Migration
def change
create_table :advertisement do |t|
t.integer :issue_id, null: false
t.string :client_name, null: false
t.decimal :size, null: false
t.decimal :price, null: false
t.decimal :commission_amount, null: false
t.string :first_payment, null: false
t.string :second_payment, null: false
t.timestamps null: false
t.foreign_key :issue
end
end
end
我安装了Foreigner 1.6.1,Rails 4.2.0。有什么想法吗?
答案 0 :(得分:22)
你,或者你的一个宝石使用了外国人&#39; gem,使用rails 4.2.0弃用
您应该更新它或删除此依赖项。 也许有人已经做过了,例如我使用了“邮箱”#39; gem,和&#39; github.com/div'已经分叉项目来创建一个分支,所以我改变了我的Gemfile:
gem 'mailboxer', :git => 'git://github.com/div/mailboxer.git', :branch => 'rails42-foreigner'
答案 1 :(得分:18)
你不需要外国人使用Rails 4.2,因为它已经内置了外键支持。语法与外国人非常相似(尽管不完全相同)。
请参阅:http://edgeguides.rubyonrails.org/4_2_release_notes.html#foreign-key-support