Хотя принятое решение является правильным для Rails в целом, когда вы не хотите, чтобы макет появлялся, это не решение для возникшей проблемы. Я также попытался внедрить [colorbox]: (https://github.com/jackmoore/colorbox) в приложение Rails 3.2. Я наткнулся на ту же проблему, а именно в модальном окне была страница, на которой была нажата ссылка.
Ранее, в файле представления Rails (.html.erb):
<% content_for :head do %>
<%= stylesheet_link_tag 'colorbox' %>
<%= javascript_include_tag 'jquery.colorbox' %>
<%= javascript_tag do -%>
$(document).ready(function(){
$("a.modal").colorbox({});
});
<% end -%>
<% end %>
<% @photos.each do |photo| %>
<%= link_to image_tag(photo.url(:thumb)), '#', :class => 'modal' %>
<% end %>
По сути, макет приложения (application.html.erb layout) показывался, потому что ссылка указывала на текущую страницу '#', которая использует макет application.html.erb. Ссылка должна быть путем изображения, а не маршрутом Rails (метод контроллера):
<% @photos.each do |photo| %>
<%= link_to image_tag(photo.url(:thumb)), photo.url, :class => 'group1' %>
<% end %>
Примечание. В этом решении используются методы, специфичные для моей настройки, с использованием carrierwave для загрузки фотографий и создания миниатюр. Вот общее решение:
<p><a href="/images/image_1.jpg" class="modal">Image 1</a></p>
<p><a href="/images/image_2.jpg" class="modal">Image 2</a></p>
<p><a href="/images/image_3.jpg" class="modal">Image 3</a></p>