2

Lemmie 只是说我对 Rails 还很陌生。

我们的应用程序使用回形针 (3.2.4) 来管理附件,并且像往常一样,我生成了一个类似于以下内容的迁移:

class AddAttachmentPhotoToPhpfoxUsers < ActiveRecord::Migration
  def self.up
    change_table :phpfox_user do |t|
      t.attachment :photo
    end
  end

  def self.down
    drop_attached_file :phpfox_user, :photo
  end
end

(它被称为 phpfox_user 因为我们必须建立在遗留数据库之上)

这一切都很好,工作正常。但是,我们还必须管理 2 个数据库并迁移到它们,所以我根据这篇文章的建议重新安排了迁移:

http://excid3.com/blog/rails-activerecord-multiple-databases-and-migrations

我不知道这应该有多好,但它似乎是一个相当简洁的解决方案,并且它很好地组织了迁移。

但是现在回形针迁移不起作用,因为它找不到附件类型。我假设它不再在范围内或没有绑定到表对象。有谁知道我应该怎么做才能把它带进来,我试过将 require 'paperclip' 添加到模块中,但这没有帮助。

我也尝试过使用 add_attachment 帮助程序,但也没有找到。

我们使用的是 Rails 3.2.13 和 Ruby 2.0.0。

编辑:错字

4

3 回答 3

5

好的,想通了。add_attachment 帮助器在 schema.rb 文件中定义。不知道是否正确,但如果我包括:

include Paperclip::Schema

进入文件,它的工作原理。

于 2013-07-05T12:51:35.713 回答
1

确保您的 Gemfile 中存在回形针(可能是最新版本),运行bundle install然后运行

bundle exec rake db:migrate

它应该可以工作。

于 2013-07-05T10:03:36.617 回答
1

我正在使用 ruby​​ 2.1.5 和 rails 4.2.1

在我的伙伴添加回形针 gem 后,我从 git 中提取了代码

我下载了回形针 gem,添加到我的 gemfile(我们的 gemfile 不同),但没有指定回形针的版本。

所以我很惊讶我不得不使用'has_attached_file'(这是旧版本的回形针)

我不得不:

1) 在 schema.rb 中包含回形针::Schema 2) 用 has_attached_file 替换附件 3) rake db:migrate

于 2015-07-08T11:05:19.997 回答