不成功的Alchemy CMS安装到Rails 4.1.0.rc2项目中

时间:2014-04-06 03:53:53

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-4.1 alchemy-cms

在一个项目中工作,CMS将派上用于常见问题解答,帮助和所有爵士乐。我遇到的问题是我决定使用Alchemy CMS 3.0.0。我已按照指南了解如何使用现有的Rails应用程序进行安装。

我添加了宝石。 Gemfile目前显示如下:

source 'https://rubygems.org'
ruby '2.1.1'

gem 'rails', '4.1.0.rc2'
gem 'mysql2'

gem 'sass-rails',   '~> 4.0.1'
gem 'uglifier',     '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'

gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'

gem 'bcrypt', '~> 3.1.5'

gem 'alchemy_cms',    :github => 'magiclabs/alchemy_cms',  :branch => "3.0-stable"
gem 'wistia-api',     :github => "BenMorganIO/wistia-api", :branch => "customizations"
gem 'stripe',         :github => 'stripe/stripe-ruby'
gem 'ahoy_matey'
gem 'newrelic_rpm'
gem 'gravtastic'
gem 'intercom-rails', '~> 0.2.24'

group :doc do
  gem 'sdoc', '~> 0.4.0'
end

group :development do
  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'meta_request'
end

group :development, :test do
  gem 'rspec-rails'
  gem 'cucumber-rails', :require => false
  gem 'database_cleaner'
end

group :production do
  gem 'rails_12factor'
end

然后我跑了bundle。之后,我跑了bin/rake alchemy:install

一旦完成,我就跑了rails server。输出是我本地主机上的404。然后我检查了日志文件,并出现了这个错误:

Alchemy is not mounted! Falling back to root path (/).
If you want to change Alchemy's mount point, please mount Alchemy::Engine in your config/routes.rb file.

我转到config/routes.rb,我发现它似乎确实已安装:

Rails.application.routes.draw do
  mount Alchemy::Engine => '/'

  root 'home#index'

  get 'about' => 'home#about', :as => 'about'

  resources :users
  match "signup"       => "users#new",   :via => "get", :as => 'signup'
  match "account"      => "users#index", :via => "get", :as => 'account'
  match "account/edit" => 'users#edit',  :via => "get", :as => 'edit_account'

  resources :sessions, :only => [:new, :create, :destroy]
  # match "login"  => 'sessions#new',     :via => "get",    :as => 'login'
  match "logout" => 'sessions#destroy', :via => "delete", :as => 'logout'

  resources :channels

  resources :videos
  get '/videos/:id/:title' => 'videos#show', :as => 'video_by_title'

  resources :charges
end

我评论了登录匹配,因为我相信Alchemy也有完全相同的路线。我采取了预防措施,除了炼金术之外已经评论了所有内容,错误仍然存​​在。

这就是我所做的一切。

关键问题:我如何让Alchemy工作?

1 个答案:

答案 0 :(得分:3)

如果mount Alchemy::Engine => '/'首先在config/routes.rb内控制所有请求,那么您需要做的就是在您希望优先于Alchemy应用程序的任何资源之后安装Alchemy引擎。因此,将该行移至routes.rb的底部,允许其他资源优先于Alchemy,这将成为所有其他未定义路径的全部。

如果您在localhost:3000收到了首先安装Alchemy的404,那么我认为您正在为您的Alchemy应用程序找到根路线,如果您还没有创建语言网站树。在这种情况下,登录Alchemy(localhost:3000/admin)并为您的默认语言创建您的第一个站点树,它将生成您的根页面。

如果您没有为Alchemy生成初始元素,也可以尝试rails generate alchemy:elements