#ruby-on-rails
#ruby-on-rails
Вопрос:
Я использую rails 2.3.11
В моем views/layout/application.html.erb
<ul>
<li>1</li>
<li>2</li>
<%= myhelper('t')%>
<li>4</li>
</ul>
Я вызываю myhelper
метод для генерации li
в application_helper.rb
def myhelper(v)
if v
content_tag(:li, link_to("3",/users_path))
end
end
Я подтвердил, что myhelper
вызывается, но он не генерирует li
тег.
Пожалуйста, дайте предложения.
Редактировать
Я пытаюсь сгенерировать тег li на основе значения, полученного от одного из вспомогательных методов в том же приложении helper, которое является collections
def myhelper(v)
collections.each_with_index do |c,i|
case c
when 'c'
content_tag(:li, link_to("3", users_path))
end
end
end
def collections
@enabled ||= Setting.get_enabled
end
где collections — это массив, полученный от одного другого вспомогательного метода в том же вспомогательном приложении helper
когда я комментирую две нижеприведенные строки
collections.each_with_index do |c,i|
end
li генерирует .
почему этот вспомогательный метод не работает.Пожалуйста, дайте предложения
Комментарии:
1. Аруна, пожалуйста, укажите ваше намерение для этого кода и очистите свой код. Очень сложно понять, чего вы пытаетесь достичь.
2.
@enabled
Содержит ли ожидаемые значения при использовании вmyhelper
? Значение, возвращаемое изcollections
, как ожидалось? Каково значениеv
— это правда? Вы пытались запустить код с точками останова (т. Е. в отладчике) или, возможно, использовалиputs
, чтобы попытаться выяснить, что это за данные и вызывается ли вообще ожидаемый код? Пожалуйста, попробуйте все эти действия, прежде чем снова редактировать вопрос!3. @Zabba — Я перепробовал все, что вы сказали .. помещает is working внутрь ‘c’, но тег времени tat не генерируется… если я прокомментирую коллекции. каждая вещь, которую генерирует тег
4. Каково значение и имя класса «c» — вы это проверили?
5. @Zabba — ставит c.class возвращает строку..
Ответ №1:
Попробуйте это (перед именованным маршрутом users_path не добавляется символ косой черты).:
content_tag(:li, link_to("3", users_path))