Ruby on rails 确定Rails 2中是否存在映像

Ruby on rails 确定Rails 2中是否存在映像,ruby-on-rails,ruby-on-rails-2,Ruby On Rails,Ruby On Rails 2,我试图检查文件是否存在,以便显示图像或占位符,但占位符始终显示。如果删除了条件语句,则徽标显示良好 <% if File.exists?(Rails.root + '/public/images/portal/logos/' + @organisation_id + '.png') %> <img src="/images/portal/logos/<%= @organisation_id %>.png" alt="<%= @person.organisa

我试图检查文件是否存在,以便显示图像或占位符,但占位符始终显示。如果删除了条件语句,则徽标显示良好

<% if File.exists?(Rails.root + '/public/images/portal/logos/' + @organisation_id + '.png') %>
  <img src="/images/portal/logos/<%= @organisation_id %>.png" alt="<%= @person.organisation.name %>">
<% else %>
  <img src="http://placehold.it/300x83&text=Please+upload+your+company+logo">
<% end %>

.png“alt=”“>

我读过一些问题,但大多数似乎与Rails 3有关,但鉴于我没有收到任何错误,我认为这会起作用。

Rails。root
在Rails 2中工作?它可能是
Rails\u root

Rails。root
返回
路径名
。向
路径名添加绝对路径将删除现有路径路径名中的路径

它应该会起作用。或者更好:

Rails.root.join("public/images/portal/logos", "#{@organisation_id.png')
将其与返回字符串的
RAILS\u ROOT
进行比较:

RAILS_ROOT #=> "/foo/bar"
RAILS_ROOT + "baz" #=> "/foo/barbaz"
RAILS_ROOT + "/baz" #=> "/foo/bar/baz"

Rails.root
在Rails 2中工作?它可能是
Rails\u root
刚试过打印
Rails.root
,它打印出了正确的路径,所以我的图像url很好,所以不确定它为什么不拾取它。
Rails\u root
打印相同的路径,但是图像检查工作起来很奇怪。如果你提交一个答案,我会标记它接受D谢谢你的回答。如果我尝试你的建议,它仍然不起作用,可能是因为我使用的是Rails 2。对我来说,省略最初的正斜杠似乎是违反直觉的,但我想这只是Rails的魔力。希望将来有人会从你的精彩解释中受益。
Rails.root.join("public/images/portal/logos", "#{@organisation_id.png')
RAILS_ROOT #=> "/foo/bar"
RAILS_ROOT + "baz" #=> "/foo/barbaz"
RAILS_ROOT + "/baz" #=> "/foo/bar/baz"