Проблема загрузки рельсов 3 (сервер) после возвращения с 3.1 - PullRequest
0 голосов
/ 05 января 2012

всего нуб на рельсы и я использую учебник Hartl.

Добрался до главы 4 (CSS, 4.1.2), все выглядело модно, и столкнулся с проблемой получения

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <%= csrf_meta_tag %>
    <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %>
    <%= stylesheet_link_tag 'blueprint/print',  :media => 'print' %>
  </head>
  <body>
    <%= yield %>
  </body>
</html>

, чтобы текст на странице выглядел «красивее». Как описывает это Хартл, «Между прочим, с новыми таблицами стилей сайт выглядит не так сильно, как раньше, но это только начало»

Я согласен, что это выглядит круче, и этот шаг явно более чем необходим для продолжения.

Итак, на локальном хосте ничего не изменилось: 3000 / pages / home, как это выглядело в главе 3.

Вот как это должно выглядеть

http://ruby.railstutorial.org/images/figures/home_with_stylesheet.png

(см. Прикрепленное изображение ^)

Итак, я наконец-то переместил папку стилей из общедоступной в app / assets / stylesheets и добавил

это

<%= stylesheet_link_tag 'application.css' %> 

в файл application.html.erb в папке app / views / layouts Что я нашел из этой части stackoverflow :) очень полезно

Итак, я запустил localhost: 3000 / pages / home и все выглядело так, как должно (по отношению к png-картинке, опубликованной выше), но весь текст был по центру, и он должен быть слева.

И, кроме того, я получал это повторное сообщение в терминале:

Started GET "/assets/stylesheets/src/typography.css?body=1" for 127.0.0.1 at 2012-01-04 17:34:13     -0800
Served asset /stylesheets/src/typography.css - 304 Not Modified (3ms)
[2012-01-04 17:34:13] WARN  Could not determine content-length of response body. Set content-    length of the response or set Response#chunked = true

Итак, приятель сказал, что это связано с версией рельсов. Мы поделились screen skype, и он сказал, что в домашнем каталоге это должно быть 3.1, а в каталоге sample_app это должно быть версия 3.0.11 (он тоже немного новичок, но у него все идет гладко)

Так что, увы, я вернулся к тому, чтобы заставить работать сервер проклятых рельсов. Я на Snow Leopard и изменил sqlite3, обновил пакет, затем установил пакет и работал нормально. Теперь 'rails s' не будет работать; /

сообщение об ошибке в терминале:

/Users/davidpardy/rails_projects/sample_app/config/application.rb:8:in `require': no such file     to load -- sprockets/railtie (LoadError)
    from /Users/davidpardy/rails_projects/sample_app/config/application.rb:8:in '<top         (required)>'
    from /Users/davidpardy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails    /commands.rb:28:in `require'
    from /Users/davidpardy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands.rb:28:in `block in <top (required)>'
    from /Users/davidpardy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands.rb:27:in `tap'
    from /Users/davidpardy/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands.rb:27:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

Так что теперь я застрял и действительно не знаю, что делать. Не хочу начинать с нуля.

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

Ответы [ 2 ]

1 голос
/ 23 января 2012

Я в той же лодке, что и вы, я бегу по рельсам 3.1.3, и у меня нет настроения начинать все сначала для более низких рельсов (или чтобы понять, как плавно изменить версию рельсов).

Я решил удалить папку blueprint и две ее строки, включая строки в application.html.erb, и добавить новое пользовательское css-файл, который я поместил непосредственно в app / assets / stylesheets.CSS просто сделал фон красным, и вот что он сделал.Я не уверен, почему наши страницы были центрированы таким образом, используя план, но теперь все выглядит хорошо.как упоминалось ранее, самая безопасная ставка - использовать те же версии, что и в руководствах, или 3.0.11 для rails, как и mr.Хартл указал в комментарии.

0 голосов
/ 05 января 2012

В ответ на Неисправность загрузки Rails Server (3.0.11, ruby ​​1.9.2), такого файла не нужно загружать - sprockets / railtie (LoadError) , вам следует удаленно использовать Rails 3.1-определенные строки из автоматически сгенерированных файлов, в основном в config/.

Один из способов выяснить, какие строки удалить, - сравнить свое приложение со свежим приложением Rails 3.0, используя diff -r

Шаг 1. Создание чистого приложения Rails 3.0

$ rails --version
Rails 3.0.10

$ rails new fresh_app
      create  
      create  README
      create  Rakefile

Шаг 2: Используйте diff -r для сравнения каталогов

$ diff -r hartl_tutorial/config fresh_app/config
diff -r hartl_tutorial/config/application.rb fresh_app/config/application.rb
5,10c5,7
< if defined?(Bundler)
<   # If you precompile assets before deploying to production, use this line
<   Bundler.require(*Rails.groups(:assets => %w(development test)))
<   # If you want your assets lazily compiled in production, use this line
<   # Bundler.require(:default, :assets, Rails.env)
< end
---
> # If you have a Gemfile, require the gems listed there, including any gems
> # you've limited to :test, :development, or :production.
> Bundler.require(:default, Rails.env) if defined?(Bundler)

Если вы не знаете, как читать diff, основная идея заключается в том, что строки, начинающиеся с <, взяты из одного файла, а строки, начинающиеся с>, - из другого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...