我在部分代码中有以下代码:
<%= 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 }) %>
当我有一个常规的轨道动作显示它时,它正常工作,例如,我得到了
<img title="Click for Largest image"
src="/campaigns/coupon_preview_text/1075?width=120"
onclick="showBigCouponPreview(1075)"
alt="Click for Largest image">
但当我通过ajax调用(对于相同的记录)使用相同的部分(具有image_tag)时,使用rjs到page.replace_html我得到的部分
<img title="Click for Largest image"
src="/campaigns/coupon_preview_text/1075?width=120"
onclick="showBigCouponPreview(#<Campaign:0x7fe795a32210>)"
alt="Click for Largest image">
即。记录ID - 1075 - 在src属性中显示确定,但在onlick操作中没有显示??? 出于某种原因,我不知道ajax调用何时使用rjs替换该部分,它似乎对同一记录的行为有所不同。
显然,获取和显示记录ID存在某种问题,而不是点击部件的内部对象ID。
答案 0 :(得分:1)
无论您在ajax调用中设置campaign_id
,都必须将其设置为实际的Campaign
对象而不是对象的ID。它适用于:id
参数的原因是因为Rails知道使用对象的ID,而.to_s
则不知道。