относительные пути для доступа к ресурсам рельсов

Я застрял! xD Я работал над проектом Rails, и у меня возникли проблемы с доступом к моим ресурсам с использованием относительных путей. Мой друг работает над html/css, а я занимаюсь контроллерами и моделями. Мой друг недавно дал мне пакет файлов, структурированных следующим образом:

app/assets/images/*.jpg
app/assets/stylesheets/*.css
app/assets/javascripts/*.js
app/assets/fonts/*.* (+some more css files in here)

В моем каталоге app/views/layouts у меня есть макет с именем final.html.erb, который используется для всего моего веб-приложения. У меня также есть 1 страница (html body content ), которую я пытаюсь отобразить с помощью этого макета в app/views/pages с именем final _page.html.erb... необходимая маршрутизация для страница для загрузки; однако он загружает только контекст последней страницы _page.html.erb (без изображений, стилей или шрифтов ). Когда я захожу в консоль, набираю «rails server» и захожу на localhost :3000, появляется страница… голая, лол. Консоль выводит следующее:


Started GET "/" for 127.0.0.1 at 2012-07-28 21:15:02 -0700
Connecting to database specified by database.yml
Processing by PagesController#final_page as HTML
  Rendered pages/final_page.html.erb within layouts/final (8.4ms)
Completed 200 OK in 82ms (Views: 81.0ms | ActiveRecord: 0.0ms)


Started GET "/assets/stylesheets/style.css" for 127.0.0.1 at 2012-07-28 21:15:04 -0700

ActionController::RoutingError (No route matches [GET] "/assets/stylesheets/style.css"):
  actionpack (3.2.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (3.2.6) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.6) lib/rails/rack/logger.rb:26:in `call_app'
  railties (3.2.6) lib/rails/rack/logger.rb:16:in `call'
  actionpack (3.2.6) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.1) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.1) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.6) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.1) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.6) lib/action_dispatch/middleware/static.rb:62:in `call'
  railties (3.2.6) lib/rails/engine.rb:479:in `call'
  railties (3.2.6) lib/rails/application.rb:220:in `call'
  rack (1.4.1) lib/rack/content_length.rb:14:in `call'
  railties (3.2.6) lib/rails/rack/log_tailer.rb:17:in `call'
  rack (1.4.1) lib/rack/handler/webrick.rb:59:in `service'
  /usr/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service'
  /usr/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run'
  /usr/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'


  Rendered /var/lib/gems/1.9.1/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (2.0ms)

Я думаю, что проблема в том, что я пытаюсь получить доступ к файлам, используя относительные пути. Мой файл макета выглядит так:

<!doctype html>
<html class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="viewport" content="width=device-width">
<title>:: Final ::</title>
<link rel="stylesheet" type="text/css" href="../../assets/stylesheets/style.css">
<link href="../../assets/stylesheets/desktop.css" rel="stylesheet" type="text/css" media="only screen and (min-width:769px) and (max-width:1000px)">
<script src="../../assets/javascripts/modernizr.js" type="text/javascript"></script>
</head>
<body>
  <%= yield %>
</body>
</html>

Кроме того, в теле моего последнего файла _page.html.erb я также пытаюсь получить доступ к изображениям, используя относительные пути... вот так:

<img src="../../assets/images/mainImg.jpg" alt="img"> 

Мой друг написал большую часть этого html, и у него 0 опыта работы с рельсами. Решил изменить запросы на ассеты вот так:

Из:

<link rel="stylesheet" type="text/css" href="../../assets/stylesheets/style.css">

К:

<%= stylesheet_link_tag "application.css" %>

Из:

<script src="../../assets/javascripts/modernizr.js" type="text/javascript"></script>

К:

<%= javascript_include_tag "application.js" %>

Из:

<img src="../../assets/images/mainImg.jpg" alt="img">

К:

<%= image_tag "mainImg.jpg"  %>

Это несколько помогает, так как изображения загружаются, и очень мало стилей просматривается; тем не менее, это далеко от того, как это должно выглядеть. Я думаю, это потому, что мой друг делает относительные вызовы в самих файлах css:

body {
    background-image: url(../images/bg.jpg);
    background-repeat: repeat;
}

Я попытался заменить их на url (<%= актив _путь 'bg.jpg' %> )и т. д. но это не имеет никакого эффекта.Я пробовал так много вещей, и прочитал так много сообщений. Мне интересно, есть ли способ, которым Rails позволит мне использовать относительные пути. Я пробовал:

config.assets.enabled = false

но это не помогает... пожалуйста... что я делаю не так? Я не думаю, что мой друг захочет перестать использовать относительные пути для своей работы, поскольку он так делает. Сайт хорошо работает за пределами Rails, но мне нужно, чтобы он работал с Rails для моего веб-приложения. Мы будем очень признательны за любые советы. Спасибо, что хватило терпения прочитать все это.

P.S. Я использую Ruby 1.9.3 и Rails 3.2.6

-. 121 ---1585214- Несколько сортировок в массиве У меня есть следующий массив :Массив( [0] => Массив ([примечание] => тест [год] => 2011 [тип] => футбол)[1] => Массив ([примечание] => test1...

У меня есть следующий массив:

Array
(
[0] => Array
    (
        [note] => test
        [year] => 2011
        [type] => football
    )

[1] => Array
    (
        [note] => test1
        [year] => 2010
        [type] => basket
    )

[2] => Array
    (
        [note] => test2
        [year] => 2012
        [type] => football
    )

[3] => Array
    (
        [note] => test3
        [year] => 2009
        [type] => basket
    )

[4] => Array
    (
        [note] => test4
        [year] => 2010
        [type] => football
    )

)

И я хотел бы сначала отсортировать его по другому массиву по типу:

Например:$sort = array('football','basket');

И далее по годам.

Как я могу это сделать?

Спасибо.

Желаемый результат должен быть:

Array
(
[2] => Array
    (
        [note] => test2
        [year] => 2012
        [type] => football
    )
[0] => Array
    (
        [note] => test
        [year] => 2011
        [type] => football
    )
[4] => Array
    (
        [note] => test4
        [year] => 2010
        [type] => football
    )

[1] => Array
    (
        [note] => test1
        [year] => 2010
        [type] => basket
    )

[3] => Array
    (
        [note] => test3
        [year] => 2009
        [type] => basket
    )

)

Я не возражаю, если мы сбросим значения индекса.

Спасибо.

5
задан glarkou 29 July 2012 в 08:40
поделиться