Ruby on rails 未定义的方法“带有回形针和导轨的附加文件”

Ruby on rails 未定义的方法“带有回形针和导轨的附加文件”,ruby-on-rails,imagemagick,paperclip,Ruby On Rails,Imagemagick,Paperclip,我在让回形针在我的VPS上工作时遇到了一些麻烦。它在本地和我的第一个VP上运行良好,但是当我尝试在第二个VP上rake db:migrate时,我得到以下输出: root@Test:/home/rails# rake db:migrate == CreateGroups: migrating =================================================== -- create_table(:groups) -> 0.0019s -- add_c

我在让回形针在我的VPS上工作时遇到了一些麻烦。它在本地和我的第一个VP上运行良好,但是当我尝试在第二个VP上
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'
...
root@Test:/home/rails#rake db:migrate
==创建组:正在迁移===================================================
--创建表格(:组)
->0.0019s
--添加列(:讨论,:组\u id,:整数)
->0.0007s
--添加列(:memberships,:memberships\u id,:integer)
->0.0006s
--已附加文件(:photo,{:styles=>{:original=>“400x200>”,:tile=>“200x200#”},:url=>“/assets/images/groups/:id/:style/:basename.:extension”,:path=>“:rails\u root/public/assets/images/groups/:id/:style/:basename.:extension”,:default\url=>“/assets/:style/missing group image.jpg})
雷克流产了!
发生错误,此迁移和所有后续迁移已取消:
未定义的#/usr/local/rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.8/lib/active\u record/migration.rb:465:在“方法中的块缺失”中
...
到目前为止,我为建立第二个VPS所做的工作是:

  • 设置Unicorn+Nginx(它们似乎工作正常)
  • apt get install git
  • apt get install imagemagick
  • 捆绑安装
    (回形针在我的文件中)
  • 重新启动我的外壳
  • 重新启动VPS

在所有这些之后,每当我尝试迁移时,仍然会出现上述错误。你知道下一步该怎么做吗

我认为您没有完全遵循回形针安装指南。您应该有以下迁移(从回形针自述中复制,因此可能与您略有不同)

class AddAvatarColumnsToUsers

很明显,您在模型中添加了一些内容。

结果表明,我的问题更多地与不完整的代码有关,而不是与我的环境有关。事实证明,我的一个队友将一些不完整的代码推送到了我们的GitHub存储库,而我却没有注意到

通过执行
git日志
,选择正确的提交,然后执行
git签出(…)
,我能够迁移并为我的数据库设置种子,并按预期运行我的应用程序


我觉得花了一个多小时试图弄明白这一点很愚蠢,但希望它能帮助其他人。:)

哪个版本的回形针?我在这个VPS上的迁移与我在本地和开发VPS上的迁移完全相同,回形针在那里工作没有问题;我不认为缺少迁移是个问题。我也有一个AddAttachmentPhotoTopProjects迁移和一个AddAttachmentFileTopProjectFiles迁移(我通过自述文件中提到的回形针生成器进行了迁移)。你有这个
--has_attached_文件(:photo,{:style=>{:original=>“400x200>,:tile=>“200x200”},:url=>“/assets/images/groups/:id/:style/:basename.:extension”,:path=>“:rails\u root/public/assets/images/groups/:id/:style/:basename.:extension”,:default\u url=>“/assets/:style/missing group image.jpg”})
在迁移中,所以请不要告诉我迁移是否正常。
class AddAvatarColumnsToUsers < ActiveRecord::Migration
  def self.up
    add_attachment :users, :avatar
  end

  def self.down
    remove_attachment :users, :avatar
  end
end