繰り返してインデックスページに表示している写真のセットがあります。各画像をクリックすると、モーダルがポップアップし、画像のより大きなバージョンが表示されるはずです。jQueryを使用してモーダルのinnerHTMLを変更しようとしています。
問題は、写真変数を渡そうとすると、が得られることundefined local variable or method 'photo'
です。インデックスページがまったく読み込まれません。
photos.js
jQuery(function () {
$('.photo_container').click(function (e) {
$('#basic_modal').html("<p><%= image_tag modal_url(photo), :class=>'modal_image' %></p>");
return false;
});
$('.photo_container').click(function (e) {
$('#basic_modal').modal({
overlayClose:true
});
return false;
});
});
エラーは、.photo_containerがクリックされたときにいくつかのrailsコードを渡そうとする上記の最初の関数で発生します。
index.html.erb
<% @photos.each do |photo| %>
<%= link_to '#', :class => 'basic' do %>
<div class="photo_container">
<%= image_tag flickr_url(photo) %>
</div>
<% end %>
<div id="basic_modal">
</div>
<% end %>
コントローラ
class PhotosController < ApplicationController
def index
if params[:search].empty?
redirect_to root_path
else
@title = params[:search]
@photos = flickr.photos.search(:tags => params[:search], :has_geo => 1)
end
end
end
写真パラメータを渡す方法についての手がかりはありますか?