写真コントローラーのカスタムメソッドfetch_infoへのAJAX呼び出しを介して、ビューからいくつかのパラメーターを渡そうとしています。コントローラーがパラメーターを受信していないようです。画像をクリックして AJAX 呼び出しを開始すると、端末に次のように表示されます。
Processing by PhotosController#fetch_info as JSON
Parameters: {"id"=>"", "secret"=>""}
Completed 500 Internal Server Error in 267ms
FlickRaw::FailedResponse ('flickr.photos.getInfo' - Photo not found):
app/controllers/photos_controller.rb:38:in `fetch_info'
fetch_info メソッドが呼び出されているように見えますが、パラメーターは空です。AJAX を介してパラメーターを渡すにはどうすればよいですか?
これが私の見解です。また、これを機能させる目的で、ビューにJavaScriptを入れています。
index.html.erb
<div class="body_container">
<div id="photos_container">
<% @photos_array.each do |p| %>
<%= link_to '#' do %>
<div class='each_photo_container', id='<%="#{p[:id]}"%>' >
<%= image_tag p[:s_url] %>
</div>
<% end %>
<!-- Load Modal onClick -->
<script type="text/javascript">
jQuery(function() {
$('#<%=p[:id]%>').click(function (e) {
//ajax call to fetch photo info
var fetch_id = '<%=p[:id]%>';
var fetch_secret = '<%=p[:secret]%>';
$.ajax({
type: 'GET',
url: '/photos/fetch_info',
dataType: 'json',
data: { 'id' : fetch_id.val(), 'secret' : fetch_secret.val() }
});
return false;
});
});
</script>
<% end %>
<div class="basic_modal">
</div>
</div>
</div>
これが私のphotos_controller.rbです:
def fetch_info
puts params[:id]
puts params[:secret]
info = flickr.photos.getInfo(:photo_id => params[:id], :secret=> params[:secret])
end