忽略Rails Gemfile中的组

时间:2015-01-04 18:45:28

标签: ruby-on-rails ruby bundler mailcatcher

我的Rails 4.1.8 Gemfile中有puma gem,因为我想将它用作所有环境中的默认Web服务器。这很好。

# Gemfile
gem "puma"

在开发中我使用的是mailcatcher,这意味着我希望将它作为依赖项包含在我的Gemfile中。

# Gemfile
group :development do
  gem "mailcatcher"
end

这会导致默认网络服务器设置为thin。这似乎是mailcatcher的意外后果,但它提出了一个具体的问题。 我可以创建一个捆绑服务器服从安装Gems的组,但是Rails会忽略吗?我尝试过这样的东西但是Rails仍在加载包含的宝石。

# Gemfile
group :mailcatcher do
  gem "mailcatcher"
end

3 个答案:

答案 0 :(得分:0)

您可以使用别名rails s命令...例如export alias rs="rails server puma",现在rs将启动puma。这样你可以自由使用你想要的任何网络服务器) 如果你想让它真的是默认的,你可以添加这样的东西

require 'rack/handler'
Rack::Handler::WEBrick = Rack::Handler.get(:puma)

rails脚本。

答案 1 :(得分:0)

我不知道这是否有效,但是:

gem "mailcatcher", :require => false

参考:Bundler: What does :require => false in a Gemfile mean?

答案 2 :(得分:0)

Mailcatcher specifically states to not put it in your Gemfile

  

请不要将mailcatcher放入Gemfile。它会在某些时候与您的应用程序宝石发生冲突。

     

相反,在README中弹出一条说明您使用mailcatcher的注释。只需运行gem install mailcatcher,然后运行mailcatcher即可开始使用。