content_tag возвращает пустое значение - PullRequest
0 голосов
/ 21 июля 2011

У меня проблема с content_tag в помощнике, этот кусок кода

  def renderize(place_holder)
    content_tag(:div, "hello") do
      @raw_estimate.field_estimates.where(:field_position_id => FieldPosition.where(:place_holder => place_holder).first).each do |field|
        if field.field_type.alias == "input"
          content_tag :div do
            field.is_validate ? label_value = "*#{field.name}" : label_value = field.name
            content_tag(:label_tag, label_value) +
            text_field_tag("estimate[field_#{field.name.downcase.gsub(/\W+/, '')}]")
          end
        end
      end
    end
  end

ничего не возвращает, что мне не хватает?Спасибо

Ответы [ 3 ]

1 голос
/ 21 июля 2011

не используйте каждый для взаимодействующего массива, использование collect будет возвращать массив ваших визуализированных тегов, см. http://apidock.com/rails/ActionView/Helpers/TagHelper/content_tag для последних нескольких комментариев

0 голосов
/ 21 июля 2011

Как уже упоминалось в другом ответе, использование каждого из них не сработает - оно не возвращает внутреннее содержимое блока.Просто в качестве примера, попробуйте выполнить это в irb:

result = 1.upto(3) do |x| x; end

результат будет "1"

Вот более чистый тест вашего кода, попробуйте его и посмотрите - он не будетвернуть что-нибудь:

  def random_test
    content_tag(:div, "hello") do
      1.upto(3) do |x|
        content_tag(:p, x)
      end
    end
  end

Вместо этого вам нужно собрать выходные данные вашего итератора, что-то вроде этого:

  def random_test
    content_tag(:div, "hello") do
      1.upto(3) do |x|
        content_tag(:p, x)
      end
    end
  end
0 голосов
/ 21 июля 2011

Эта строка подозрительна:

 :field_position_id => FieldPosition.where(:place_holder => place_holder).first

Насколько я понимаю, левая часть - это идентификатор, а правая часть возвращает объект FieldPosition, а не его идентификатор.Вот почему никакие объекты не возвращаются, а у вашего помощника нет содержимого.

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