Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RoR-带有链接的图像,在的url中显示ID时出错,但不在图像标签中?_Ruby On Rails_Ruby_Onclick_Partial_Rjs - Fatal编程技术网

Ruby on rails RoR-带有链接的图像,在的url中显示ID时出错,但不在图像标签中?

Ruby on rails RoR-带有链接的图像,在的url中显示ID时出错,但不在图像标签中?,ruby-on-rails,ruby,onclick,partial,rjs,Ruby On Rails,Ruby,Onclick,Partial,Rjs,我有以下部分代码: <%= image_tag(url_for(:controller => "campaigns", :action=>'coupon_preview_text', :id => campaign_id, :width=>width), { :title=>@campaign_name, :onclick=>"showBigCouponPreview(" + campaign_id.to_s +

我有以下部分代码:

<%= 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 }) %>
“活动”:操作=>“优惠券预览”文本,
:id=>campaign_id,:width=>width){
:title=>@campaign\u name,
:onclick=>“showBigCouponPreview(“+campaign\u id.to\u s+”),
:alt=>@campaign_name})%>
当我有一个常规的rails动作显示它时,它工作100%正常,例如

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

但是当我通过一个ajax调用(对于同一条记录)使用相同的部分(带有image_标记)时,它使用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">

即记录id-1075-在src属性中显示ok,但在onlick操作中不显示? 出于某种原因,我不知道ajax调用何时使用rjs替换该部分,对于同一条记录,它的行为似乎有所不同


很明显,在获取和显示记录ID(而不是点击部分的内部对象ID)时存在某种问题。

无论您在ajax调用中设置
活动ID
,您必须将其设置为实际的
活动
对象,而不是对象的ID。之所以使用
:ID
参数,是因为Rails知道使用对象的ID,而
。to_
不知道。

看起来像是整数而不是整数,这里有
活动
的实例。这些视图是否用于相同的操作?向我们展示您的RJS模板。可能您在那里输入错误,将
campaign
传递给
:locals
而不是
campaign.id
。是的,看起来是这样的-但是为什么相同的属性-campaign\u id-在“src”属性中有效,而在我获取对象id的“onlick action”中无效。它被称为相同的变量名,因为当您在非ajax方法,实际上可能是将其设置为id,而不是对象。发布你的ajax方法的代码/rjs模板,我可以给你更多信息。我找到了它(多亏了Dylan的提示)。事实上,我在一个调用此部分的位置使用id,在另一个使用Active Record对象的位置使用id,我可以通过将.map(&:id)添加到使用Active Record的位置的末尾来修复此问题,现在两个调用方都在使用相同的东西(仅id)它可以工作!