好的,所以我正在重建几年前在 ROR 1 中构建的旧照片库管理应用程序,并且遇到了一些编码困难,因为我生疏了,而且显然情况已经改变。我的第一个问题是尝试调用页面时出现未定义的局部变量或方法“库”错误。我感到困惑的是我在“画廊”控制器中定义了该方法,但我想知道我是否完全遗漏了一些东西。下面是一些相关的代码片段,首先是我的 index.html.erb 页面:
<% @photos.each do |photo| %>
<div>
<%= image_tag(photo.thumb_url) %>
<%= link_to 'Show', gallery %><br/>
</div>
<% end %>
<p><%= will_paginate @photos %></p>
我的画廊控制器:
class GalleryController < ApplicationController
skip_before_filter :authorize
# GET /gallery
# GET /gallery.xml
def index
@photos = Photo.all
@photos = Photo.paginate :page=>params[:page], :order=>'date desc',
:per_page => 2
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @gallery }
end
end
# GET /gallery/1
# GET /gallery/1.xml
def show
@photo = Photo.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render :json => @photo }
end
end
end
我的错误:
undefined local variable or method `gallery' for #<#<Class:0x111127b38>:0x1112d5700>
我应该澄清“照片”是需要登录并包含所有字段/数据库/记录数据的管理部分。使用以下行我没有问题:
<%= link_to 'Show', photo %><br/>
这会显示正确的记录和查看页面,但在站点的管理部分(需要登录)。希望这是有道理的。