image_tag в помощнике не передает параметры для просмотра

Проблема

У меня есть вспомогательный метод, который запускает троичную операцию. Оба результирующих операнда являются методами image_tag. Когда я вызываю этот помощник из представления, параметр «: size» не преобразуется в теги высоты и ширины в html. Когда я копирую и вставляю метод image_tag непосредственно в файл представления, все работает нормально.

application_helper.rb

def display_portrait(candidate)
  if candidate.portrait_url
    image_tag(candidate.portrait_url.to_s, :size => "10x10")
  else
    image_tag("missing_portrait.png", :size => "10x10")
  end
end

view.html.erb

<%= display_portrait candidate %> DOES NOT GENERATE HEIGHT AND WITH ATTR'S

<%= image_tag("missing_portrait.png", :size => "10x10") %> DOES GENERATE ATTR'S

Помощник по-прежнему генерирует привязку с правильным источником; ему не хватает только атрибутов высоты и ширины.

Спасибо, что нашли минутку, чтобы помочь,

Майкл


person Michael Pell    schedule 08.05.2012    source источник
comment
ЕСЛИ вы нашли ответ, отметьте его или не указали.   -  person beck03076    schedule 09.05.2012
comment
Ответа пока не нашел. Спасибо за помощь. Я воспользуюсь вашим методом отладки, чтобы углубиться в него, когда у меня будет такая возможность.   -  person Michael Pell    schedule 12.05.2012


Ответы (3)


Сначала проверьте запись, поместите оператор в метод отображения портрета, если условие, а затем проверьте, что есть

входящие в параметры этого метода.

вы также можете сделать это в представлениях

   <%= image_tag(@image.portrait.url(:thumb):alt => "Description") %>

Надеюсь вам поможет......

person Kashiftufail    schedule 08.05.2012

application_helper.rb

def display_portrait(candidate)
  if candidate == 1
    image_tag(candidate, :size => "10x10")
  else
    image_tag("missing_portrait.png", :size => "10x10")
  end
end

новый.html.erb

В этом представлении

<%= display_portrait 1 %>

генерирует,

<img alt="1" height="10" src="/assets/1" width="10" />

а также

<%= display_portrait 0 %>

генерирует,

<img alt="Missing_portrait" height="10" src="/assets/missing_portrait.png" width="10" />

Должно быть что-то не так в вашем условии If.

person beck03076    schedule 08.05.2012

Я бы ни в коем случае не использовал «размер» на вашем месте, если только вас не волнует IE‹9. Я бы предпочел использовать свойство стиля.

PS: В частности, для этой проблемы я бы попытался использовать width: и height: чтобы посмотреть, изменит ли это что-нибудь. Я знаю, что некоторые помощники в Rails ведут себя по-разному в зависимости от того, откуда они вызываются.

person Alex C    schedule 11.02.2014