Приложение отлично работает в разработке (локальном сервере), но не в производстве. У меня есть следующие в журналах Heroku (я редактировал журналы, чтобы быть легче читать, я просто включали то, что я думаю, являются ошибки):Ошибка приложения Ruby on Rails при развертывании heroku
2015-05-15T23:58:43.894626+00:00 app[web.1]: Rendered layouts/_header.html.erb (8.5ms)
2015-05-15T23:58:43.885011+00:00 app[web.1]: Rendered movies/index.html.erb within layouts/application (17.5ms)
2015-05-15T23:58:43.896788+00:00 app[web.1]: ActionView::Template::Error (undefined method `scard' for nil:NilClass):
2015-05-15T23:58:43.896785+00:00 app[web.1]:
2015-05-15T23:58:43.896790+00:00 app[web.1]: 19: <%if signed_in?%>
2015-05-15T23:58:43.896791+00:00 app[web.1]: 20: <li>
2015-05-15T23:58:43.896794+00:00 app[web.1]: 22: <i class="fi-shopping-cart"></i> My Cart (<span class="cart-count"><%=current_user.cart_count%></span>)
2015-05-15T23:58:43.896793+00:00 app[web.1]: 21: <%= link_to cart_path do%>
2015-05-15T23:58:43.896796+00:00 app[web.1]: 23: <%end%>
2015-05-15T23:58:43.896797+00:00 app[web.1]: 24: </li>
2015-05-15T23:58:43.896799+00:00 app[web.1]: 25: <li><%=link_to current_user.email, edit_user_registration_path%></li>
2015-05-15T23:58:43.896801+00:00 app[web.1]: app/models/user.rb:36:in `cart_count'
2015-05-15T23:58:33.939033+00:00 app[web.1]: Completed 500 Internal Server Error in 3ms
2015-05-15T23:58:33.933343+00:00 app[web.1]: Started GET "/movies/2" for 160.9.1.112 at 2015-05-15 23:58:33 +0000
2015-05-15T23:58:33.935944+00:00 app[web.1]: Processing by MoviesController#show as HTML
2015-05-15T23:58:33.935966+00:00 app[web.1]: Parameters: {"id"=>"2"}
2015-05-15T23:58:33.938157+00:00 app[web.1]: Movie Load (1.3ms) SELECT "movies".* FROM "movies" WHERE "movies"."id" = $1 LIMIT 1 [["id", 2]]
2015-05-15T23:58:33.939854+00:00 app[web.1]:
2015-05-15T23:58:33.939856+00:00 app[web.1]: NoMethodError (undefined method `sismember' for nil:NilClass):
2015-05-15T23:58:33.939858+00:00 app[web.1]: app/models/movie.rb:20:in `cart_action'
2015-05-15T23:58:33.939859+00:00 app[web.1]: app/controllers/movies_controller.rb:9:in `show'
2015-05-15T23:58:28.575297+00:00 app[web.1]: Started GET "/movies/1" for 160.9.1.112 at 2015-05-15 23:58:28 +0000
2015-05-15T23:58:28.581745+00:00 app[web.1]: Parameters: {"id"=>"1"}
2015-05-15T23:58:28.635038+00:00 app[web.1]: Completed 500 Internal Server Error in 53ms
2015-05-15T23:58:28.581412+00:00 app[web.1]: Processing by MoviesController#show as HTML
2015-05-15T23:58:28.618562+00:00 app[web.1]: Movie Load (1.6ms) SELECT "movies".* FROM "movies" WHERE "movies"."id" = $1 LIMIT 1 [["id", 1]]
2015-05-15T23:58:28.636023+00:00 app[web.1]:
2015-05-15T23:58:28.636027+00:00 app[web.1]: NoMethodError (undefined method `sismember' for nil:NilClass):
2015-05-15T23:58:28.636029+00:00 app[web.1]: app/models/movie.rb:20:in `cart_action'
2015-05-15T23:58:28.636031+00:00 app[web.1]: app/controllers/movies_controller.rb:9:in `show'
movie.rb:
class Movie < ActiveRecord::Base
has_many :purchases
has_many :buyers, through: :purchases
before_save :embed_video_url
def poster
"http://ia.media-imdb.com/images/M/#{poster_url}"
end
def imdb
"http://www.imdb.com/title/#{imdb_id}/"
end
def embed_video_url
self.video_url = "//www.youtube.com/embed/#{video_url.split('v=')[1].split('&list')[0]}"
end
def cart_action(current_user_id)
if $redis.sismember "cart#{current_user_id}", id
"Remove from"
else
"Add to"
end
end
end
Я последовал официальный гид от Heroku «https://devcenter.heroku.com/articles/redistogo» Даже тест хорошо работать, но косяка запустить в производство я знаю, что это исчерпывает, чтобы проверить все эти линии так, я буду признателен за любую помощь PS: В разработке/локальном сервере работает отлично
пожалуйста, предоставьте нам свою модель 'movie.rb', а также контроллера фильмов – Cyzanfar
есть вы добавили что-то, чтобы обеспечить Redis на Heroku (Redis пойти/Redis облака/??) не включается по умолчанию – Doon
я redis.rb с этими линиями: = URI URI.parse (ENV [ "REDISTOGO_URL"]) REDIS = Redis.new (: URL => URI) Я также попытался изменить код, но в штрафной обработанное .I последовал за официальным redis по установке heroku – John