Сбой генерации тегов li с использованием вспомогательных методов в rails

#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))