#ruby-on-rails #erb
#ruby-on-rails #erb
Вопрос:
Во-первых, я приношу извинения за это, поскольку я не программист Rails.. Мне просто нужно разобраться с этим, чтобы я мог вернуться к продуктивной работе.
Я унаследовал RoR-сайт, и мне нужно иметь изображение, которое вращается случайным образом при загрузке страницы. Просто, не так ли?
Моим решением было сгенерировать случайное число от 0 до 2. Если число больше 1, отображается одно изображение, в противном случае отображается другое. Я поместил это в sidebar.erb
файл :
<div class="shadow">
<%- if rand(2) > 1 %>
<img src="foo.png"/>
<%- else %>
<img src="bar.png"/>
<%- end %>
</div>
Я получаю следующую ошибку в журналах сайта:
warning: else without rescue is useless
Вероятно, я делаю это совершенно неправильно. Честно говоря, мне просто нужно, чтобы это работало с минимальными усилиями. Любая помощь была бы высоко оценена.
Комментарии:
1. Вероятно, ошибка в другом месте вашего кода. Приведенный выше вид отлично работает в Rails 3.0.7, Ruby 1.8.7.
Ответ №1:
Сначала вам нужно будет вычислить случайное число в вашем контроллере и поместить его в переменную экземпляра, например :
@image_random = rand(2)
Затем, по вашему мнению :
<% if @image_random == 1 %>
<%= image_tag "foo.png" %>
<% else %>
<%= image_tag "bar.png" %>
<% end %>
Вы можете безопасно проиграть — после <% в Rails 3 🙂 Это было сделано автоматически.
Имейте в виду, что rand (2) вернет либо 0, либо 1. Таким образом, проверка на случайное значение > 1 всегда будет выдавать значение false.
Комментарии:
1. Также … rand (2) генерирует число от 0 до 1, а не 1 и 2. По крайней мере, в Ruby 1.9.2
2. @ardavis: именно о том, о чем была моя первая правка, вы, ребята, такие быстрые : P Теперь предупреждение, держу пари, что оно взято из предыдущего кода, возможно, если incredimike вставит, мы сможем лучше с этим помочь. Но я думаю, что то, что я пишу, является правильным способом сделать это.