Я использую скрепку для обработки загрузки фотографий профиля в моем приложении. Они хорошо загружаются и меняют размер в соответствии со спецификациями моей модели. Однако, если профиль пользователя: фото равен нулю, что бы я ни пытался, я не могу изменить значение по умолчанию. Вот код, который я хочу использовать:
<% if @profile.photo.nil? %>
<%= image_tag "public/images/example.jpg", :html => { :id => "noUserProfile" } %>
<% else %>
<%= image_tag @profile.photo.url(:normal) %>
<% end %>
Я пробовал "../public/images/example.jpg", и он тоже не работает, хотя у меня есть "example.jpg" в папке с общедоступными изображениями. Когда я копирую адрес изображения в моем представлении, я получаю:
http://localhost:3000/photos/normal/missing.png
Я добавил эти папки в свое приложение, поместил туда файл missing.png и ничего. Если я перейду по указанному выше URL-адресу, я получаю Нет совпадений маршрута "/photos/normal/missing.png"
Есть ли у кого-нибудь идеи относительно того, что происходит?
has_attached_file в модели профиля:
has_attached_file :photo,
:styles => {
:normal => "153x220#",
:small => "75x108#" }
add_attachment_photo_to_profile миграция:
class AddAttachmentPhotoToProfile < ActiveRecord::Migration
def self.up
add_column :profiles, :photo_file_name, :string
add_column :profiles, :photo_content_type, :string
add_column :profiles, :photo_file_size, :integer
add_column :profiles, :photo_updated_at, :datetime
end
def self.down
remove_column :profiles, :photo_file_name
remove_column :profiles, :photo_content_type
remove_column :profiles, :photo_file_size
remove_column :profiles, :photo_updated_at
end
end
Это HTML-код, который отображается, когда существует : photo
:
<div class="userSnapshot">
<div class="smFrame">
<div class="smUserPhoto">
<img alt="8217_667699353137_15600054_38423586_7789442_n" src="/system/photos/1/small/8217_667699353137_15600054_38423586_7789442_n.jpg?1316052048" />
</div>
</div>
<div class="findinfo">
<p><a href="/profiles/1">Name</a></p>
</div>
</div>
Это HTML-код, который отображается, когда : photo
равно нулю:
<div class="userSnapshot">
<div class="smFrame">
<div class="smUserPhoto">
<img alt="Missing" src="/photos/small/missing.png" />
</div>
</div>
<div class="findinfo">
<p><a href="/profiles/2">Name</a></p>
</div>
</div>