我使用Rails 4并在添加了回形针初始化代码后,按用户ID初始化用户文件名,以使用此代码为每个文件指定不同的名称
在初始化文件中
# initializers images names by the model id (:id)
Paperclip.interpolates :parent_id do |a, s|
a.instance.contract.id
end
在模型中
has_attached_file :photo ,
:url => "/system/files/users/:basename_:id.:extension",
:path => ":rails_root/public/system/files/users/:basename_:id.:extension"
现在,通过给文件提供basename_fileID.file扩展名
,它可以正常工作但我注意到我错过了所有旧文件链接,因为新链接将搜索该文件包含basename和fileID之类的内容" image_1.jpeg "但是关于basename的旧链接搜索只有" image.jpeg "
所以如何在Rails中解决它而不更改服务器上的旧文件名?
在Rails 4中是否有一些东西允许我通知链接在某些情况下获取旧路径?
答案 0 :(得分:0)
最后,我通过使用File.exist?
代码
<% if File.exist?(@user.photo.path) %>
<!--The new path -->
<%= link_to "Photo", @user.photo.url %>
<% else %>
<!--The old path -->
<%= link_to root_url+'system/files/users/'+@user.photo_file_name, :title => "show image" do %>Photo<% end %>
<% end %>