【问题标题】:ActionController::RoutingError No route matches [GET]ActionController::RoutingError 没有路由匹配 [GET]
【发布时间】:2013-02-02 10:49:10
【问题描述】:

在一个新的 Rails 项目中,我安装了带有 Ruby 1.9.3-p-194 的 Rails 3.2.11 我还安装了 spree 版本 1.3.1。

我在安装时采取的步骤:

    rails new mystore
    cd mystore
    spree install -A
    rails s

安装时一切正常,但是当我在http://localhost:3000/ 中打开它时,没有加载产品图像,但加载了 spree 徽标。

这是最后一张图片,但我对所有产品图片都一样:

Started GET "/spree/products/6/small/ror_jr_spaghetti.jpeg" for 127.0.0.1 at 2013-02-02 11:33:54 +0100

ActionController::RoutingError (No route matches [GET] "/spree/products/6/small/ror_jr_spaghetti.jpeg"):
  actionpack (3.2.11) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.11) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.11) lib/rails/rack/logger.rb:32:in `call_app'
  railties (3.2.11) lib/rails/rack/logger.rb:16:in `block in call'
  activesupport (3.2.11) lib/active_support/tagged_logging.rb:22:in `tagged'
  railties (3.2.11) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.11) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.4) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.4) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.11) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.4) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.11) lib/action_dispatch/middleware/static.rb:62:in `call'
  railties (3.2.11) lib/rails/engine.rb:479:in `call'
  railties (3.2.11) lib/rails/application.rb:223:in `call'
  rack (1.4.4) lib/rack/content_length.rb:14:in `call'
  railties (3.2.11) lib/rails/rack/log_tailer.rb:17:in `call'
  rack (1.4.4) lib/rack/handler/webrick.rb:59:in `service'
  /home/vane/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
  /home/vane/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
  /home/vane/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'


  Rendered /home/vane/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.11/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.2ms)


Started GET "/assets/favicon.ico" for 127.0.0.1 at 2013-02-02 11:33:54 +0100
Served asset /favicon.ico - 304 Not Modified (28ms)
[2013-02-02 11:33:54] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

我用identify -version检查了我的ImageMagic版本,我得到了:

Version: ImageMagick 6.8.2-2 2013-02-01 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: fontconfig freetype pango png ps x xml zlib

我还验证了 ImageMagick 安装是否正常工作:

/usr/local/bin/convert logo: logo.gif

谁能告诉我是我做错了什么还是另一个问题。

提前致谢。

【问题讨论】:

  • 清除您的数据库 (rake db:reset),然后手动重新播种数据 (rake db:seed),看看这是否会带来任何额外的错误或工作。我不知道为什么它不会立即显示图像。
  • rake db:reset 表现良好,但是当我运行rake db:seed 时会弹出此错误:loading fixture /home/usr/.rvm/gems/ruby-1.9.3-p194/gems/spree_core-1.3.1/db/default/spree/countries.yml rake aborted! SQLite3::ConstraintException: PRIMARY KEY must be unique: INSERT INTO "spree_countries" ("name", "iso3", "iso", "iso_name", "id", "numcode") VALUES ('Chad', 'TCD', 'TD', 'CHAD', 39, 148)

标签: ruby-on-rails-3.2 imagemagick spree


【解决方案1】:

最好使用本指南,实际上:http://guides.spreecommerce.com/getting_started.html

你应该使用捆绑器。我没有看到任何关于 spree install -a 的信息。我认为您应该执行 bundle exec rails g spree:install,但我可能错了。

edit 一切正常,并向您提交了拉取请求。我不确定到底是什么问题,但我所做的只是再次运行 spree 安装,并让它覆盖它之前写的任何内容,看起来你缺少更多的依赖项,另外我将您的大礼包更新到 1.3.2 导致 1.3.1 出现错误。我希望这能让你有所收获。

【讨论】:

  • 我按照指南使用bundle exec rails g spree:install 进行操作,但我得到了同样的错误。 -A 用于接受所有默认值。感谢您的回答和时间。
  • 我以前从未听说过,无论如何,您检查过路线吗? bundle exec rake 路由和检查呢?似乎该路线与您应该拥有的路线不匹配。这是通过捆绑 exec rake db:seed 加载的默认产品还是如何放入?
  • 我有这条图片路线update_positions_admin_product_images /admin/products/:product_id/images/update_positions(.:format) spree/admin/images#update_positions... ,但这条路线是针对管理面板的。我没有任何其他包含图像的路线。你认为有可能被列为产品属性吗?
  • 您必须检查图像的显示方式。那你一定是密码不对。我在资产甚至 /images 下看不到任何东西,所以肯定存在某种问题,除非这些存储在数据库中。如果它们存储在数据库内部而不是文件系统上,那么必须有一个路由。
  • 这是我在路线 rb mount Spree::Core::Engine, :at => '/' 中唯一的线路,我应该拥有所有 this lines
猜你喜欢
  • 2018-11-21
  • 1970-01-01
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
相关资源
最近更新 更多