В Ruby, через Sinatra, как получить ссылку внутри тега `li`? - PullRequest
2 голосов
/ 30 ноября 2011

Я использую erb, и в идеале я хотел бы, чтобы мой HTML выглядел следующим образом:

<li class="selected"><a href="awesome.html">Look at this awesome page</a></li>

Где и путь для ссылки, и класс для li динамически генерируются с использованием переменной экземпляра.

Мысли

Редактировать 1

Если бы я использовал что-то вроде Rails, я знаю, что мог бы сделать что-то вроде:

<%= link_to content_tag(:li, nil, awesome_path, :class => "selected") %>

Но это произвело бы противоположный эффект, когда <a> был бы вне <li>, а не внутри, где я хочу.

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Это называется помощник:

helpers do
    def li_with_a options
        '<li class="' + options[:class] + '"><a href="' + options[:url] + '">' + options[:text] + '</a></li>'
    end
end

и от erb:

<%= li_with_a :class => 'selected', :url => 'awesome.html', :text => 'Look at this text' %>
3 голосов
/ 30 ноября 2011

Должно быть так же просто, как:

<li class="<%= @li_class %>">
  <a href="<%= @page_path %>">Look at this awesome page</a>
</li>

Конечно, вы должны соответственно изменить переменные экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...