我在使用Paperclip处理我的VPS时遇到了一些麻烦。它在本地和我的第一个VPS上运行良好,但是当我在第二个VPS上尝试rake db:migrate
时,我得到以下输出:
root@Test:/home/rails# rake db:migrate
== CreateGroups: migrating ===================================================
-- create_table(:groups)
-> 0.0019s
-- add_column(:discussions, :group_id, :integer)
-> 0.0007s
-- add_column(:memberships, :memberships_id, :integer)
-> 0.0006s
-- has_attached_file(:photo, {:styles=>{:original=>"400x200>", :tile=>"200x200#"}, :url=>"/assets/images/groups/:id/:style/:basename.:extension", :path=>":rails_root/public/assets/images/groups/:id/:style/:basename.:extension", :default_url=>"/assets/:style/missing-group-image.jpg"})
rake aborted!
An error has occurred, this and all later migrations canceled:
undefined method `has_attached_file' for #<CreateGroups:0x0000000342cbf8>/usr/local/rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.8/lib/active_record/migration.rb:465:in `block in method_missing'
...
到目前为止我设置的第二个VPS是:
apt-get install git
apt-get install imagemagick
bundle install
(和Paperclip在我的Gemfile中)完成所有这些后,每当我尝试迁移时,我仍然会收到上述错误。关于下一步做什么的任何想法?
答案 0 :(得分:1)
我认为你并没有完全遵循Paperclip安装指南。您应该进行以下迁移(从Paperclip自述文件复制,因此可能略有不同)
class AddAvatarColumnsToUsers < ActiveRecord::Migration
def self.up
add_attachment :users, :avatar
end
def self.down
remove_attachment :users, :avatar
end
end
你显然在那里放了一些应该在你身上的东西。
答案 1 :(得分:0)
事实证明,我的问题与不完整的代码有关,而不是我的环境。事实证明,我的队友已将一些不完整的代码推送到我们的GitHub存储库,我没有注意到它。
通过执行git logs
,选择正确的提交,然后选择git checkout (...)
,我能够按预期迁移和播种数据库并运行我的应用程序。
我花了一个多小时试图解决这个问题感到非常愚蠢,但希望它可以帮助其他人。 :)