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
我不知道这应该有多好,但它似乎是一个相当简洁的解决方案,它可以很好地组织迁移。
但是现在回形针迁移不起作用,因为找不到附件类型。我假设它不再在范围内或者没有绑定到表对象。有没有人知道我应该做些什么才能把它带进来,我已经尝试过将'paperclip'添加到模块中,但这没有用。
我也尝试过使用add_attachment助手,但也没找到。
我们正在使用Rails 3.2.13和Ruby 2.0.0。
编辑:拼写错误
答案 0 :(得分:5)
好的,想通了。 add_attachment助手在schema.rb文件中定义。不知道是否正确,但如果我包括:
include Paperclip::Schema
进入文件,它可以工作。
答案 1 :(得分:1)
确保您的Gemfile中存在paperclip(可能是最新版本),运行bundle install
然后运行
bundle exec rake db:migrate
它应该可以正常工作。
答案 2 :(得分:1)
我正在使用ruby 2.1.5和rails 4.2.1
我的合作伙伴添加了paperclip gem后,我从git中提取了代码
我下载了paperclip gem,添加到我的gemfile(我们的gemfiles不同),但没有指定paperclip的版本。
所以我很惊讶我必须使用&#39; has_attached_file&#39; (适用于较旧版本的回形针)
我必须:
1)在schema.rb中包含paperclip :: Schema 2)用has_attached_file替换附件 3)rake db:migrate