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") %>
Другие вопросы по тегам