HTML, встроенный Ruby не отображается в Heroku

#ruby-on-rails #ruby #heroku

#ruby-on-rails #ruby #heroku

Вопрос:

Основная часть моего блога не отображается, когда я нажимаю на Heroku. Я перепробовал несколько способов, но безрезультатно. Я перенес базу данных. В журналах Heroku указано, что он отображает страницу, но при запуске приложения не отображается ни одна из ссылок, HTML или встроенного ruby. Я думаю, что это может иметь какое-то отношение к моей модели статей. Не уверен. Вот что у меня есть. Дайте мне знать, если вам нужно увидеть что-нибудь еще. Спасибо

     class ArticlesController < ApplicationController


  def new
    @article = Article.new
  end

  def index
    @article = Article.all


    @articles = Article.order('created_at DESC')
    @articles_by_month = Article.find(:all, :order => 'created_at DESC').group_by { |article| article.created_at.strftime("%B %Y") }
  end


  def month_count
    @articles_by_month = Article.find(:all, :order => 'created_at DESC').group_by { |article| article.created_at.strftime("%B %Y") }
  end

  def create  
    @article = Article.new(article_params)

      if @article.save
      redirect_to @article
    else
      render 'new'
    end
  end



  def edit
    @article = Article.find(params[:id])
  end

  def update
    @article = Article.find(params[:id])

    if @article.update(article_params)
      redirect_to @article
    else
      render 'edit'
    end
  end


  def show
    @article = Article.find(params[:id])
  end

  def destroy
    @article = Article.find(params[:id])
    @article.destroy

    redirect_to articles_path
  end

  private

  def article_params
    params.require(:article).permit(:title, :text, :image)
  end

end


Model

class Article < ActiveRecord::Base
  has_many :comments, dependent: :destroy
  validates :title, presence: true,
                    length: { minimum: 5 }
  mount_uploader :image, ImageUploader 
  default_scope -> { order('created_at DESC') }                 
end
  

Вот представление, которое вообще не отображается. Остальные представления (верхний, нижний колонтитулы и т.д.) Отображаются нормально, и ссылки работают.

 <div class="bit-75">

  <% @article.each do |article| %>
    <h2 id="title"><%= link_to article.title, article_path(article) %></h2>
    <br>
    <ul id="article-links">
      <div id="article-image"><%= image_tag article.image_url %></div>
      <br>
      <li id="article-text"><%= article.text %></li>
    <p>Posted on <%= article.created_at %></p>
    <br>


    <% if admin_signed_in? %>
      <li><%= link_to 'Edit',           edit_article_path(article) %></li>
      <li><%= link_to 'Destroy',        article_path(article),
                    method: :delete, data: { confirm: 'Are you sure?'} %></li>
      <li><%= link_to 'New article', new_article_path %></li>
    <% else %>                
      <li><%= link_to 'Make a Comment', article_path(article) %><p>Comments(<%= article.comments.count %>)</p></li>      
    </ul>
    <% end %>   
  <% end %>

<div id="new-article-path"></div>
</div>
<div class="bit-5">
  <h2>Recent Posts</h2>

    <br>

  <% @article.each do |article| %>

    <ul id="recent-article">
      <li><%= link_to article.title, article_path(article) %></li>
    </ul>

  <% end %>
    <br>
    <br>

  <h2>Archives</h2>

  <% @articles_by_month.each do |monthname, articles| %>
    <h4 id="month-archive"><%=link_to monthname, archives_path %></h4>

    <% end %>



  <!-- <h2>Tags</h2> -->
</div>
  

журналы heroku (довольно длинные)

 2014-07-02T05:23:23.970096 00:00 app[web.1]:   Rendered devise/registrations/new.html.erb within layouts/application (38.9ms)
2014-07-02T05:23:23.974015 00:00 app[web.1]: Completed 200 OK in 126ms (Views: 45.5ms | ActiveRecord: 9.5ms)
2014-07-02T05:23:23.972553 00:00 app[web.1]:   Rendered layouts/_header.html.erb (1.3ms)
2014-07-02T05:23:40.402197 00:00 heroku[router]: at=info method=POST path="/admins" host=sleepy-wave-3015.herokuapp.com request_id=bbc86129-9987-4973-9bae-c4421791aa40 fwd="98.16.161.172" dyno=web.1 connect=1ms service=197ms status=302 bytes=1222
2014-07-02T05:23:40.209336 00:00 app[web.1]: Started POST "/admins" for 98.16.161.172 at 2014-07-02 05:23:40  0000
2014-07-02T05:23:40.399492 00:00 app[web.1]: Completed 302 Found in 186ms (ActiveRecord: 33.4ms)
2014-07-02T05:23:40.213315 00:00 app[web.1]: Processing by Devise::RegistrationsController#create as HTML
2014-07-02T05:23:40.399306 00:00 app[web.1]: Redirected to http://sleepy-wave-3015.herokuapp.com/
2014-07-02T05:23:40.213360 00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "authenticity_token"=>"kAMtYWrxZZqh7ozJx2qJS1kYAEA2FH7WnOjAozWyGmU=", "admin"=>{"email"=>"hustada80@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Sign up"}
2014-07-02T05:23:40.495384 00:00 heroku[router]: at=info method=GET path="/" host=sleepy-wave-3015.herokuapp.com request_id=613ce782-8e68-4d84-b383-f96c7df76f7c fwd="98.16.161.172" dyno=web.1 connect=1ms service=24ms status=200 bytes=2886
2014-07-02T05:23:40.471723 00:00 app[web.1]: Started GET "/" for 98.16.161.172 at 2014-07-02 05:23:40  0000
2014-07-02T05:23:40.481758 00:00 app[web.1]:   Rendered articles/index.html.erb within layouts/application (1.8ms)
2014-07-02T05:23:40.491226 00:00 app[web.1]:   Rendered layouts/_footer.html.erb (0.3ms)
2014-07-02T05:23:40.491635 00:00 app[web.1]: Completed 200 OK in 16ms (Views: 10.0ms | ActiveRecord: 3.4ms)
2014-07-02T05:23:40.475645 00:00 app[web.1]: Processing by ArticlesController#index as HTML
2014-07-02T05:23:40.490712 00:00 app[web.1]:   Rendered layouts/_header.html.erb (7.8ms)
2014-07-02T05:23:40.991172 00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=sleepy-wave-3015.herokuapp.com request_id=de2e4b02-cf09-4dee-801d-8097db86d83f fwd="98.16.161.172" dyno=web.1 connect=2ms service=3ms status=304 bytes=111
2014-07-02T05:35:25 00:00 heroku[slug-compiler]: Slug compilation started
2014-07-02T05:35:38 00:00 heroku[slug-compiler]: Slug compilation finished
2014-07-02T05:35:38.200566 00:00 heroku[web.1]: State changed from up to starting
2014-07-02T05:35:38.015315 00:00 heroku[api]: Deploy a839f2c by hustada80@gmail.com
2014-07-02T05:35:38.015423 00:00 heroku[api]: Release v9 created by hustada80@gmail.com
2014-07-02T05:35:42.300258 00:00 app[web.1]: I, [2014-07-02T05:35:42.300126 #2]  INFO -- : Refreshing Gem list
2014-07-02T05:35:44.068316 00:00 app[web.1]: I, [2014-07-02T05:35:44.068183 #2]  INFO -- : listening on addr=0.0.0.0:6095 fd=9
2014-07-02T05:35:44.292214 00:00 app[web.1]: I, [2014-07-02T05:35:44.291998 #11]  INFO -- : worker=2 ready
2014-07-02T05:35:44.257917 00:00 app[web.1]: I, [2014-07-02T05:35:44.257616 #8]  INFO -- : worker=1 ready
2014-07-02T05:35:44.230625 00:00 app[web.1]: I, [2014-07-02T05:35:44.230307 #5]  INFO -- : worker=0 ready
2014-07-02T05:35:44.277000 00:00 app[web.1]: I, [2014-07-02T05:35:44.276699 #2]  INFO -- : master process ready
2014-07-02T05:35:40.858961 00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 6095 -c ./config/unicorn.rb`
2014-07-02T05:35:44.547194 00:00 heroku[web.1]: State changed from starting to up
2014-07-02T05:36:07.326683 00:00 app[web.1]: Started GET "/" for 98.16.161.172 at 2014-07-02 05:36:07  0000
2014-07-02T05:36:07.547694 00:00 app[web.1]:   Rendered articles/index.html.erb within layouts/application (5.8ms)
2014-07-02T05:36:07.606733 00:00 heroku[router]: at=info method=GET path="/" host=sleepy-wave-3015.herokuapp.com request_id=42b8f735-dbcf-49c6-934e-929ce7545ede fwd="98.16.161.172" dyno=web.1 connect=1ms service=292ms status=200 bytes=2886
2014-07-02T05:36:07.500728 00:00 app[web.1]: Processing by ArticlesController#index as HTML
2014-07-02T05:36:07.599101 00:00 app[web.1]:   Rendered layouts/_header.html.erb (47.2ms)
2014-07-02T05:36:07.602660 00:00 app[web.1]: Completed 200 OK in 102ms (Views: 51.5ms | ActiveRecord: 18.6ms)
2014-07-02T05:36:07.601879 00:00 app[web.1]:   Rendered layouts/_footer.html.erb (1.6ms)
2014-07-02T05:36:07.931840 00:00 heroku[router]: at=info method=GET path="/assets/application-640666fff5063d0df1cee80215693060.css" host=sleepy-wave-3015.herokuapp.com request_id=3deed151-7d47-4e8b-ba0c-6b37d8d3d054 fwd="98.16.161.172" dyno=web.1 connect=13ms service=12ms status=200 bytes=7311
2014-07-02T05:36:08.065888 00:00 heroku[router]: at=info method=GET path="/assets/application-167e763a98f91e4c35869ccad604f596.js" host=sleepy-wave-3015.herokuapp.com request_id=66fa4f50-8455-4850-9451-0e5e448dcc0e fwd="98.16.161.172" dyno=web.1 connect=1ms service=18ms status=200 bytes=318312
2014-07-02T05:36:08.710019 00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=sleepy-wave-3015.herokuapp.com request_id=3e1512da-ff1b-40bc-961d-68c2119efc7d fwd="98.16.161.172" dyno=web.1 connect=1ms service=4ms status=200 bytes=196
2014-07-02T05:36:19.248082 00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT
2014-07-02T05:36:19.248248 00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT
2014-07-02T05:36:19.246878 00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT
2014-07-02T05:36:19.248362 00:00 app[web.1]: Unicorn master intercepting TERM and sending myself QUIT instead
2014-07-02T05:36:19.457047 00:00 app[web.1]: I, [2014-07-02T05:36:19.456867 #2]  INFO -- : reaped #<Process::Status: pid 11 exit 0> worker=2
2014-07-02T05:36:19.660093 00:00 app[web.1]: I, [2014-07-02T05:36:19.659964 #2]  INFO -- : reaped #<Process::Status: pid 8 exit 0> worker=1
2014-07-02T05:36:19.659873 00:00 app[web.1]: I, [2014-07-02T05:36:19.659751 #2]  INFO -- : reaped #<Process::Status: pid 5 exit 0> worker=0
2014-07-02T05:36:19.660443 00:00 app[web.1]: I, [2014-07-02T05:36:19.660210 #2]  INFO -- : master complete
2014-07-02T05:36:18.677579 00:00 heroku[web.1]: Stopping all processes with SIGTERM
2014-07-02T05:36:21.135150 00:00 heroku[web.1]: Process exited with status 0
2014-07-02T05:43:02 00:00 heroku[slug-compiler]: Slug compilation started
2014-07-02T05:43:13 00:00 heroku[slug-compiler]: Slug compilation finished
2014-07-02T05:43:14.308749 00:00 heroku[web.1]: State changed from up to starting
2014-07-02T05:43:17.358823 00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT
2014-07-02T05:43:17.361771 00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUITUnicorn master intercepting TERM and sending myself QUIT instead
2014-07-02T05:43:17.361830 00:00 app[web.1]: 
2014-07-02T05:43:17.358416 00:00 app[web.1]: Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT
2014-07-02T05:43:17.765610 00:00 app[web.1]: I, [2014-07-02T05:43:17.765548 #2]  INFO -- : reaped #<Process::Status: pid 8 exit 0> worker=1
2014-07-02T05:43:17.764809 00:00 app[web.1]: I, [2014-07-02T05:43:17.764676 #2]  INFO -- : reaped #<Process::Status: pid 5 exit 0> worker=0
2014-07-02T05:43:17.765797 00:00 app[web.1]: I, [2014-07-02T05:43:17.765697 #2]  INFO -- : reaped #<Process::Status: pid 11 exit 0> worker=2
2014-07-02T05:43:17.765977 00:00 app[web.1]: I, [2014-07-02T05:43:17.765921 #2]  INFO -- : master complete
2014-07-02T05:43:13.306462 00:00 heroku[api]: Deploy d4ffe02 by hustada80@gmail.com
2014-07-02T05:43:13.306636 00:00 heroku[api]: Release v10 created by hustada80@gmail.com
2014-07-02T05:43:18.442837 00:00 app[web.1]: I, [2014-07-02T05:43:18.442644 #2]  INFO -- : Refreshing Gem list
2014-07-02T05:43:20.430574 00:00 app[web.1]: I, [2014-07-02T05:43:20.430372 #11]  INFO -- : worker=2 ready
2014-07-02T05:43:20.258723 00:00 app[web.1]: I, [2014-07-02T05:43:20.258571 #2]  INFO -- : listening on addr=0.0.0.0:59093 fd=9
2014-07-02T05:43:20.407932 00:00 app[web.1]: I, [2014-07-02T05:43:20.407514 #8]  INFO -- : worker=1 ready
2014-07-02T05:43:20.373661 00:00 app[web.1]: I, [2014-07-02T05:43:20.373373 #5]  INFO -- : worker=0 ready
2014-07-02T05:43:20.418161 00:00 app[web.1]: I, [2014-07-02T05:43:20.417896 #2]  INFO -- : master process ready
2014-07-02T05:43:20.780536 00:00 heroku[web.1]: State changed from starting to up
2014-07-02T05:43:16.831337 00:00 heroku[web.1]: Stopping all processes with SIGTERM
2014-07-02T05:43:19.174501 00:00 heroku[web.1]: Process exited with status 0
2014-07-02T05:43:17.028772 00:00 heroku[web.1]: Starting process with command `bundle exec unicorn -p 59093 -c ./config/unicorn.rb`
2014-07-02T05:44:31.538439 00:00 heroku[api]: Starting process with command `bundle exec rake db:migrate` by hustada80@gmail.com
2014-07-02T05:44:36.077537 00:00 heroku[run.5746]: State changed from starting to up
2014-07-02T05:44:35.988244 00:00 heroku[run.5746]: Awaiting client
2014-07-02T05:44:38.072012 00:00 heroku[run.5746]: Starting process with command `bundle exec rake db:migrate`
2014-07-02T05:44:45.389762 00:00 heroku[run.5746]: State changed from up to complete
2014-07-02T05:44:45.375562 00:00 heroku[run.5746]: Process exited with status 0
2014-07-02T05:44:57.559180 00:00 heroku[router]: at=info method=GET path="/" host=sleepy-wave-3015.herokuapp.com request_id=94abc6c3-4e02-4f2b-8551-d3a31450990a fwd="98.16.161.172" dyno=web.1 connect=1ms service=208ms status=304 bytes=1110
2014-07-02T05:44:57.358930 00:00 app[web.1]: Started GET "/" for 98.16.161.172 at 2014-07-02 05:44:57  0000
2014-07-02T05:44:57.506551 00:00 app[web.1]:   Rendered articles/index.html.erb within layouts/application (3.8ms)
2014-07-02T05:44:57.555156 00:00 app[web.1]:   Rendered layouts/_footer.html.erb (1.8ms)
2014-07-02T05:44:57.659011 00:00 heroku[router]: at=info method=GET path="/assets/application-640666fff5063d0df1cee80215693060.css" host=sleepy-wave-3015.herokuapp.com request_id=d4206d6e-bc79-48a1-be22-15e7997d369f fwd="98.16.161.172" dyno=web.1 connect=1ms service=9ms status=200 bytes=7311
2014-07-02T05:44:57.460053 00:00 app[web.1]: Processing by ArticlesController#index as HTML
2014-07-02T05:44:57.552362 00:00 app[web.1]:   Rendered layouts/_header.html.erb (42.7ms)
2014-07-02T05:44:57.555722 00:00 app[web.1]: Completed 200 OK in 95ms (Views: 46.1ms | ActiveRecord: 21.0ms)
2014-07-02T05:44:57.727072 00:00 heroku[router]: at=info method=GET path="/assets/application-167e763a98f91e4c35869ccad604f596.js" host=sleepy-wave-3015.herokuapp.com request_id=74356978-8cd9-47ac-92ee-8bfbd6e80929 fwd="98.16.161.172" dyno=web.1 connect=1ms service=24ms status=200 bytes=318312
2014-07-02T05:44:58.358669 00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=sleepy-wave-3015.herokuapp.com request_id=731e0236-1dd9-4063-915b-6115872df974 fwd="98.16.161.172" dyno=web.1 connect=2ms service=10ms status=200 bytes=196
2014-07-02T05:46:47.702096 00:00 heroku[api]: Starting process with command `bundle exec rake db:schema:dump amp;amp; cat db/schema.rb` by hustada80@gmail.com
2014-07-02T05:46:52.946894 00:00 heroku[run.8701]: State changed from starting to up
2014-07-02T05:46:53.813517 00:00 heroku[run.8701]: Awaiting client
2014-07-02T05:46:53.845209 00:00 heroku[run.8701]: Starting process with command `bundle exec rake db:schema:dump amp;amp; cat db/schema.rb`
2014-07-02T05:46:59.773131 00:00 heroku[run.8701]: State changed from up to complete
2014-07-02T05:46:59.758285 00:00 heroku[run.8701]: Process exited with status 0
2014-07-02T05:49:25.971374 00:00 heroku[api]: Starting process with command `bin/rails console` by hustada80@gmail.com
2014-07-02T05:49:30.204777 00:00 heroku[run.1221]: State changed from starting to up
2014-07-02T05:49:30.372260 00:00 heroku[run.1221]: Awaiting client
2014-07-02T05:49:30.409488 00:00 heroku[run.1221]: Starting process with command `bin/rails console`
2014-07-02T06:10:46.735678 00:00 heroku[run.1221]: State changed from up to complete
2014-07-02T06:10:46.720594 00:00 heroku[run.1221]: Process exited with status 0
  

Gemfile

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


gem 'rails', '4.0.4'
gem 'sass-rails', '~> 4.0.2'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'cells'
gem 'turbolinks'
gem 'jbuilder', '~> 1.2'
gem 'carrierwave'
gem 'bcrypt-ruby'
gem 'bootstrap'
gem 'bootstrap-sass'
gem 'devise'


group :doc do

  gem 'sdoc', require: false
end


group :development, :test do
  gem 'rspec-rails'
  gem 'rspec'
  gem 'shoulda-matchers'
  gem 'capybara'
end



group :development do
  gem 'quiet_assets'
  gem 'pry'
  gem 'sqlite3'
end

group :production do
  gem 'pg'
  gem 'rails_12factor'
  gem 'unicorn'
end
  

Попытался запустить это ‘RAILS_ENV=production bundle exec rake assets: предварительная компиляция’

Получил это в терминале

 rake aborted!
Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add `gem 'pg'` to your Gemfile.
  

Комментарии:

1. Работает ли он локально? Можете ли вы опубликовать свои журналы heroku?

2. Конечно. Он работает локально. Я также добавил драгоценный камень unicorn, если это имеет значение. Кажется, что мои приложения запускаются чаще, чем нет.

3. Вы убедились, что он правильно выполняет предварительную компиляцию ресурсов? Проверьте: devcenter.heroku.com/articles/rails-asset-pipeline

4. Я использовал эту команду ранее -> «bundle exec rake assets: предварительная компиляция, затем отправлен в git и развернут. Это то, о чем вы говорите?

5. Я думаю, что это может иметь какое-то отношение к драгоценному камню pg. Должен ли я иметь это здесь? группа: производство завершается gem ‘pg’ gem ‘rails_12factor’ gem ‘unicorn’

Ответ №1:

Данные

Если ваш HTML / ruby встроенный код работает для других controller#actions , у вас, вероятно, возникнут проблемы с маршрутизацией или с тем, как вы структурируете свое представление.

Я бы сделал это:

 $ heroku run rails c
$ Article.create(title: "test, body: "test")
  

Это позволит вам создать Article запись в рабочей среде, которая будет вероятной причиной вашей проблемы (отсутствие правильного набора данных)

Маршруты

После того, как это будет завершено, сохраните, а затем вам нужно убедиться, что вы вызываете правильный controller#action в своих маршрутах. Вы должны установить его с помощью resourceful маршрутизации:

 #config/routes.rb
resources :articles
  

Модель

Наконец, вы переопределили default_scope часть своей модели, но вызываете точно такие же условия при использовании

 #app/models/article.rb
Class Article < ActiveRecord::Base
   default_scope ....
end
  

Вы должны удалить default_scope ссылку — вам это не нужно


Предварительная компиляция

Причина, по которой ваша предварительная компиляция rake не работает, заключается в том, что вы не используете PG локально. Поскольку вы используете его в production .

Чтобы исправить это, вам просто нужно включить его за пределы group: production do блока в ваш routes файл:

 #Gemfile
gem 'pg' #-> allows precompile to run for production environment
  

Комментарии:

1. Это, вероятно, не решит вашу проблему, но должно помочь обнаружить потенциальную проблему. Если вы дадите мне комментарии, мы сможем исправить для вас!

2. Спасибо за это Богатое. Первая часть вашего ответа указала мне на решение. У меня был настроен мой HTML и весь мой встроенный ruby и зависел от уже существующей статьи. Я вроде как сделал это для целей администратора. Итак, я вручную пошел и создал администратора, а затем использовал этого администратора для создания статьи. Как только статья была создана, все появилось :). Ценю помощь всех! Спасибо.

3. Кроме того, спасибо за все другие предложения с моим кодом. Я новичок, поэтому любая помощь, независимо от решения, полезна. Спасибо