(легко) Ror: Создать помощника в поле зрения. Но как? - PullRequest
0 голосов
/ 05 июля 2011

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

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

это поведение, которое я хотел бы: - если я в / groups /: id, я хочу отобразить фон: id.jpg, если он существует - если нет, я хотел бы отобразить случайное изображение, которое дано моим javascript ImagesAleatoire ();

Спасибо за помощь

<% flag = false
if (params[:id]) and (request.request_uri[1..7] == "groups/")
    file =  "/images/groups/"+params[:id]+".jpg";
else
    file = ""
end


if (File.exists?("public"+file)) %>
    <% flag = true %>
    <div id="header" style="background : url('<%= file %>') 114px top #2d8872;">
<% else %>
    <div id="header" style="background-color : #2d8872;">
<% end %>


<div id="searchzone">

    <div id="personnage">
    <% unless (flag)    %> <script>Images_Aleatoire(); </script> <% end %>
    </div> 
</div>
...

Ответы [ 2 ]

0 голосов
/ 05 июля 2011

вы можете попробовать эту вспомогательную функцию

def group_bg_picture
  if (params[:controller] == "groups") && (params[:id])
    file = "/images/groups/#{params[:id]}.jpg";     
    "background:url('#{file}') 114px top #2d8872;" if File.exists? "public"+file 
  else
    ""
  end
end

и на ваш взгляд:

<% bg_picture = group_bg_picture %>
<div id="header" style="<%= bg_picture || 'background-color : #2d8872;' %>">
<% unless (bg_picture.present?) %> 
  <script>Images_Aleatoire(); </script> 
<% end %>
0 голосов
/ 05 июля 2011

Такой помощник под app/helpers/:

module FlagHelper
  def flag_exists?
    flag_file && File.exists?("public"+flag_file)
  end

  def flag_file
    "/images/groups/"+params[:id]+".jpg" if params[:id]
  end
end

А на ваш взгляд:

<% if (flag_exists?) %>
    <div id="header" style="background : url('<%= flag_file %>') 114px top #2d8872;">
<% else %>
    <div id="header" style="background-color : #2d8872;">
<% end %>


<div id="searchzone">
  <div id="personnage">
    <% unless (flag_exists?) %>
      <script>Images_Aleatoire();</script>
    <% end %>
  </div> 
</div>
...