我正在尝试通过为自己创建博客并在Heroku上部署它来学习Rails,但我在自定义gem上遇到NoMethodError。一切都在开发中本地工作,但在转移到生产时我一直遇到错误。
Processing by HomeController#index as HTML
2012-08-18T02:17:11+00:00 app[web.1]: Rendered home/index.html.erb within layouts/application (4.1ms)
2012-08-18T02:17:11+00:00 app[web.1]: Completed 500 Internal Server Error in 19ms
2012-08-18T02:17:11+00:00 app[web.1]:
2012-08-18T02:17:11+00:00 app[web.1]: ActionView::Template::Error (undefined method `bbcode_to_html' for #<String:0x000000032ee278>):
2012-08-18T02:17:11+00:00 app[web.1]: 3: <p class="article_body"><%= raw Post.last.body.bbcode_to_html %></p>
2012-08-18T02:17:11+00:00 app[web.1]: 1: <div id="homepage_headline">
2012-08-18T02:17:11+00:00 app[web.1]: 4: </div>
2012-08-18T02:17:11+00:00 app[web.1]:
2012-08-18T02:17:11+00:00 app[web.1]: 2: <h1 class="article_title_headlines"><%= link_to "#{Post.last.title}", post_path(Post.last) %></h1>
2012-08-18T02:17:11+00:00 app[web.1]:
2012-08-18T02:17:11+00:00 app[web.1]: app/views/home/index.html.erb:3:in `_app_views_home_index_html_erb__3063155323426577095_38919220'
我在我的Gemfile中包含了bb-ruby,如下所示:
group :production do
gem 'thin'
gem 'pg'
gem 'bb-ruby', '0.9.6', :path => 'vendor/bb-ruby'
end
...
gem 'bb-ruby', '0.9.6', :path => 'vendor/bb-ruby'
我在视图中尝试过要求bb-ruby,但是后来Heroku给了我一个找不到错误的文件。
我想我的主要问题是:Heroku上的制作和我机器上的开发有什么区别?除了我从环境的配置文件中可以看到的内容。到目前为止我所知道的是Heroku需要预编译javascript和css等资源。但宝石怎么样?我无法找到关于如何在Heroku中使用自定义宝石的非常好的解释。我感谢任何帮助。
更新:我已经能够通过使用版本0.9.5的bb-ruby使应用程序正常工作。版本0.9.6是我自己创建的版本(在开发中工作)但是在Heroku中引起了问题,我想是因为我自己打包并指定了路径。
答案 0 :(得分:0)
不要指定路径,Heroku会覆盖它,除非你知道更好,否则默认是正常的。你也想要pg和bb-ruby没有特定的组,因为你到处都需要它。
答案 1 :(得分:0)
为了使用你自己的自定义版本,在github中分割gem,进行自己的更改,然后使用gemfile中的:git选项指向它。