RoR - изображение со ссылкой, ошибка, показывающая идентификатор в url-for, но не в image_tag? - PullRequest
0 голосов
/ 07 января 2012

У меня есть следующий код в частичном:

<%= image_tag(url_for(:controller => "campaigns", :action=>'coupon_preview_text',
:id => campaign_id, :width=>width), {
          :title=>@campaign_name,
          :onclick=>"showBigCouponPreview(" + campaign_id.to_s + ")",  
:alt => @campaign_name }) %>

Это работает на 100% нормально, когда у меня есть обычное отображение рельсов, например. Я получаю

<img title="Click for Largest image" 
src="/campaigns/coupon_preview_text/1075?width=120" 
onclick="showBigCouponPreview(1075)" 
alt="Click for Largest image">

но когда я использую тот же частичный (у которого есть image_tag) через вызов ajax (для той же записи), который использовал rjs для page.replace_html частичный, я получаю

<img title="Click for Largest image" 
src="/campaigns/coupon_preview_text/1075?width=120" 
onclick="showBigCouponPreview(#&lt;Campaign:0x7fe795a32210&gt;)" 
alt="Click for Largest image">

т.е. идентификатор записи - 1075 - показывает нормально в атрибуте src, но не в действии onlick ??? По какой-то причине я не знаю, когда вызов ajax использует rjs для замены этого частичного, он, кажется, ведет себя по-разному для одной и той же записи.

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

1 Ответ

1 голос
/ 07 января 2012

Везде, где вы устанавливаете campaign_id в своем вызове ajax, вы должны устанавливать его для фактического Campaign объекта, а не ID объекта.Причина, по которой он работает для параметра :id, заключается в том, что Rails знает, как использовать идентификатор объекта, тогда как .to_s этого не делает.

...