-1

我已经阅读了有关此主题的其他主题,但它们似乎对我不起作用,所以如果我对这个主题头脑发热,我提前道歉。

我在 Rails 中有一个视图,它显示了一个 700x200 的大图像(我们称之为幻灯片)。在这个大图像下,我有几个缩略图显示。当我单击缩略图时,我希望该缩略图的大图像出现在缩略图上方的大图像中。

我对图像使用 Rails 3.2 和 PaperClip。

我的查看代码:

<div id="slider">
  <%= image_tag @first_image.image.url(:full) %>
</div>
<% @slides.each do |s| %>
  <div id="slider_tn">
    <ul>
      <li><%= s.id %> <%= image_tag s.image.url(:thumb), {:onclick =>"$('#slider').html("+image_tag.url(:full)+")"} %></li>
      <li>Title: <%= s.title %></li>
      <li>URL:  <%= s.url %></li>
      <li><%= link_to("Edit", action: "edit", id: s.id) %></li>
    </ul>
  </div>
<% end %>

在 :onclick 部分内部是我遇到问题的地方。我收到“错误数量的参数(0 代表 1..2)。我尝试添加 ruby​​ 标签:

<%= s.id %> <%= image_tag s.image.url(:thumb), {:onclick =>"$('#slider').html("+<%= image_tag.url(:full) %>+")"} %>

...但这给我带来了错误:意外的'<',我理解。我尝试将 image_tag.url(:full) 分配给 javascript var,如其他帖子中所见,并使用它,但这对我也不起作用。

关于如何让它发挥作用的任何想法。

非常感谢任何帮助/提示。

4

2 回答 2

0

您无法在标签内打开标签。您想要的是从您已经在标签内定义的字符串中转义 ruby​​ 代码。利用 #{}。

<%= image_tag s.image.url(:thumb), {:onclick =>"$('#slider').html(#{image_tag.url(:full)})"} %>

http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals#Interpolation

于 2013-06-25T11:15:11.573 回答
0

我想你应该使用image_tag s.image.url(:full)而不是image_tag.url(:full)

<%= image_tag s.image.url(:thumb), {:onclick => "$('#slider').html(#{image_tag s.image.url(:full)})"} %>
于 2013-06-25T11:17:55.703 回答