Обновление: в порядке. это странно, в браузере я могу получить доступ к изображениям по адресу localhost: 3000 / assets / images / rails.png, но когда я помещаю этот путь в файл seed.rb и затем загружаю страницу, он показывает, что он пытается найти изображение в /assets/rails.png т.е. оно пропускает папку с изображениями ... есть идеи?
Возможно ли, что рельсы где-то настроены так, чтобы просматривать только две папки?
Я использую книгу под названием Agile web Development с Rails, чтобы узнать, как использовать фреймворк, но, похоже, есть небольшие отличия. Он предоставляет код для rails 3.0 и 3.1 (я использую последний), но он не всегда работает, как ожидалось. До сих пор мы создали скаффолдинг для класса Products и использовали seed.rb для помещения некоторых данных в базу данных sqlite3. В папке assets / images есть изображения для каждого «продукта», но они не отображаются.
Я экспериментировал в файле seed.rb с путем к изображениям, но он не работал.
Изображения находятся в папке app / assets / images
Я покажу вам следующие файлы, каждый из которых так или иначе связан с изображениями
1.app / просмотров / продукты / _form.html.erb
2.app/views/products/index.html.erb
3. дБ / семена. Рб
ОБНОВЛЕНИЕ: в файле журнала указано, что для изображений существует ошибка маршрутизации.
Started GET "/assets/wd4d.jpg" for 127.0.0.1 at Tue Sep 27 11:01:43 -0400 2011
Served asset /wd4d.jpg - 404 Not Found (3ms)
ActionController::RoutingError (No route matches [GET] "/assets/wd4d.jpg"):
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.5ms)
Started GET "/images/ruby.jpg" for 127.0.0.1 at Tue Sep 27 11:01:43 -0400 2011
ActionController::RoutingError (No route matches [GET] "/images/ruby.jpg"):
приложение / просмотров / продукты / _form.html.erb
<%= form_for(@product) do |f| %>
<% if @product.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@product.errors.count, "error") %> prohibited this product from being saved:</h2>
<ul>
<% @product.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :description %><br />
<%= f.text_area :description, :rows => 6 %>
</div>
<div class="field">
<%= f.label :image_url %><br />
<%= f.text_field :image_url %>
</div>
<div class="field">
<%= f.label :price %><br />
<%= f.text_field :price %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
2.app / просмотров / продукты / index.html.erb
<h1>Listing products</h1>
<table>
<% @products.each do |product| %>
<tr class="<%= cycle('list_line_odd', 'list_line_even') %>">
<td>
<%= image_tag(product.image_url, :class => 'list_image') %>
</td>
<td class="list_description">
<dl>
<dt><%= product.title %></dt>
<dd><%= truncate(strip_tags(product.description),
:truncate => 80) %></dd>
</dl>
</td>
<td class="list_actions">
<%= link_to 'Show', product %><br/>
<%= link_to 'Edit', edit_product_path(product) %><br/>
<%= link_to 'Destroy', product,
:confirm => 'Are you sure?',
:method => :delete %>
</td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New product', new_product_path %>
3. db / seeds.rb (обратите внимание, что я экспериментировал с URL-адресом изображения)
Product.delete_all
Product.create (: title => «Веб-дизайн для разработчиков»,
: описание =>
% {
бла бла
},
: image_url => 'wd4d.jpg',
: цена => 42,95)
. , .
Product.create (: title => 'Programming Ruby 1.9',
: описание =>
% {
бла бла
},
: image_url => '/images/ruby.jpg',
: цена => 49.50)
. , .
Product.create (: title => 'Предписания теста Rails',
: описание =>
% {
бла бла
},
: image_url => '/images/rtp.jpg',
: цена => 43,75)