我正在尝试使用没有rails的paperclip(但尝试连接rails创建的db)。 使用bundler来获取宝石。
这是我的模特
class RailsDB < ActiveRecord::Base
establish_connection $db_config[:rails_db]
end
class VoiceCall < RailsDB
belongs_to :campaign
set_table_name :voice_calls
has_attached_file :sound_file
validates_attachment_presence :sound_file
end
如果我尝试运行该程序,则会抛出错误
undefined method `has_attached_file
任何想法? 的修改: 我的宝石文件
source "http://rubygems.org"
gem 'activerecord', '< 3.1', :require => 'active_record'
gem 'mysql2', '< 0.3'
gem "paperclip", "~> 2.4"
我需要使用宝石
require "bundler/setup"
Bundler.require(:default)
再观察一次。我开始使用irb并需要活动记录,然后是回形针。然后跑了这个
p ActiveRecord::Base.methods.select{|m| m =~ /has_attached_file/}
返回空列表 但是当我打开rails console(使用&#34; rails c&#34;)时,语句会起作用并返回值。(两者都使用相同的宝石)
答案 0 :(得分:0)
此错误表示Paperclip gem未在您的应用程序中正确加载(或根本没有)。
你可以发布你的Gemfile和config / preinitializer.rb吗?
Bundler是否能够在您的环境中成功加载其他Gems?
我已经看到,当没有为Rails项目正确配置Bundler导致gems无法加载时会发生这种情况。对于这个更大的问题,回形针模型参考是煤矿中的金丝雀。
答案 1 :(得分:0)
有同样的问题。
使用
gem "paperclip", :git => "git://github.com/thoughtbot/paperclip.git"