Rails 3: link_to и image_tag
Как я могу иметь тег изображения со ссылкой на файл background.jpg
в моем public/images и при нажатии на перенаправить пользователя к root_url (таким образом, содержимое страницы находится в контейнере, и если пользователь нажимает на фоновое изображение, перенаправляются на дом?) Спасибо!
3 ответа
Конечно:
<%= link_to(image_tag("background.jpg", :alt => "home image", :width => 100, :height => 100, :title => "Click here to return to Home") "/") %>
Большинство помощников тегов rails принимают блокировку, что означает, что вы можете использовать do
чтобы упростить вашу жизнь. Здесь я использую блок с link_to
:
<%= link_to root_url do %>
<%= image_tag "background.jpg" %>
<% end %>
В этом случае link_to ожидает, что следующим параметром будет путь, а блок выдает то, что оборачивает якорь.
В общем, я стараюсь придерживаться одного помощника по тегам на правило линии, если это не супер тривиально, поэтому предпочитаю эту технику, когда линия в противном случае стала бы переполненной. Преимущество такого способа заключается в том, что теги расположены на разных строках, поэтому ошибки легче идентифицировать.
Если вам нужны другие варианты, добавьте их, как обычно. Например, я добавлю класс CSS:
<%= link_to root_url, :class => 'imagelink' do %>
...
Я искал то же самое некоторое время назад, и я нашел способ Rails сделать это.
Допустим, вы хотите, чтобы HTML-страница отображала следующий код
<a title="Return Home" class="logo" href="/pages/home">
<img width="200" height="50" src="logo.png" alt="Logo Image">
</a>
Где "страницы" - это контроллер, а "дом" - это действие. Вот путь Rails.
<%=link_to(image_tag("12roots-logo.png",:size => "209x50", :alt=> "12roots"),
{:controller=>"pages", :action=>"home"}, :title=>"Return Home", :class=>"logo") %>