无法在Windows 7 x64上安装paperclip 2.5.0

时间:2012-01-15 16:17:04

标签: ruby-on-rails paperclip

所有环境都是从railsinstaller设置的。 Ruby - 1.9.2-p290 Rails - 3.1.1等

错误: G:\ Projects \ burk> gem install paperclip -v'2.5.0' 错误:执行gem时...(Errno :: EINVAL)     参数无效 - C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/paperclip-2.5.0/test/fixtures/question?mark.png

版本2.4.5安装正常,但在迁移时遇到错误:

G:\ Projects \ burk> gem install paperclip -v'2.5.0' - trace 错误:执行gem时...(OptionParser :: InvalidOption)     无效选项: - trace

G:\ Projects \ burk> rake db:migrate --trace **调用db:migrate(first_time) **调用环境(first_time) **执行环境 **调用db:load_config(first_time) **调用rails_env(first_time) **执行rails_env **执行db:load_config **执行db:migrate == CreateBrands:迁移============================================= ====== - create_table(:品牌) 耙子流产了! 发生错误,所有后续迁移都已取消:

ch中未定义的方法has_attached_file' for #<ActiveRecord::ConnectionAdapters::Tab leDefinition:0x5c804a0> G:/Projects/burk/db/migrate/20120115082718_create_brands.rb:6:in阻止 安格” C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / connection_adapters / abstract / schema_statements.rb:161:in create_table ' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record/connection_adapters/mysql2_adapter.rb:481:in create_table' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:447:在say_with_time中的block in method_missing' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record/migration.rb:422:in块中 C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/benchmark.rb:295:in measure' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record/migration.rb:422:in say_with_time' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:442:在method_missing' G:/Projects/burk/db/migrate/20120115082718_create_brands.rb:3:in更改' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:391:in block (2 levels) in migrate' C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/benchmark.rb:295:in measure' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:391:在block in migrate' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record/connection_adapters/abstract/connection_pool.rb:185:in with_connectio中 N” C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:375:在migrate' C:in迁移中 C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:687:在block (2 levels) in migrate' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record/migration.rb:744:in调用' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:744:在ddl_transaction' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record/migration.rb:686:in块中迁移' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:671:在each' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record/migration.rb:671:in迁移中 C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / migration.rb:549:在up' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record/migration.rb:530:in迁移中 C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3.1.3/lib/acti ve_record / railties / databases.rake:161:block (2 levels) in <top (required)>' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task. rb:205:in来电' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task。 rb:205:每个block in execute' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task. rb:200:in C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task。 rb:200:在invoke_with_call_chain中的execute' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task. rb:158:in块中 C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/monitor.rb:201:in mon_synchronize' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task. rb:151:in invoke_with_call_chain' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/task。 rb:144:在invoke' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:116:in invoke_task'中 C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:94:每个block (2 levels) in top_level' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:94:in C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:94:block in top_level' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:133:in standard_exception_handling' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:88:在top_level' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:66:in块中运行' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:133:in standard_exception_handling' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/appli cation.rb:63:in run' C:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/bin/rake:33:在  <top (required)>' C:/RailsInstaller/Ruby1.9.2/bin/rake:19:in负载” C:/RailsInstaller/Ruby1.9.2/bin/rake:19:in'' 任务:TOP =&gt;分贝:迁移

1 个答案:

答案 0 :(得分:6)

问题是有人在Gem测试文件中添加了一个名为question?mark.png的文件,以测试Paperclip使用此类文件名的行为。不幸的是,问号不是Windows中文件名的合法字符。 (请参阅directory,提交historydiscussion以及issue

最好的解决方法是下载zip file from Github,将其复制到项目中并从Gemfile中明确引用Gem,如下所示:

gem 'paperclip', path: 'vendor/gems/paperclip'

编辑:作为版本2.5.2,可以在Windows平台上再次安装Paperclip gem。 (Commit