我仍在学习 Rails,我已经阅读了一些书籍并在 codeschool.com 上进行了一些实践,现在我正在尝试从头开始编写我的第一个简单应用程序。
我正在使用设计进行身份验证,但由于我仍然对 Rails 有点失望,所以目前我还没有收到电子邮件确认,出于测试目的,只有管理员用户可以采取行动。
这是我的模型:
[loluser@fedora models]$ ls
admin.rb pet.rb user.rb
[loluser@fedora models]$ cat admin.rb
class Admin < ActiveRecord::Base
has_many :pets
devise :database_authenticatable, :registerable, :timeoutable, :validatable,
:timeout_in => 20.minutes
end
[loluser@fedora models]$ cat pet.rb
class pet < ActiveRecord::Base
belongs_to :admin
end
[loluser@fedora 模型]$
在我的控制器中,我想在索引中显示 Admin[1] 的宠物,所以我有以下代码:
class petsController < ApplicationController
before_filter :authenticate_admin!
# GET /pets
# GET /pets.xml
def index
admin=Admin.find(1)
@pets = pet.admin.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @pets }
end
end
但是,我收到此错误:
NoMethodError in petsController#index
undefined method `admin' for #<Class:0x7f2daa7b0258>
Rails.root: /home/loluser/dev/app2/devise_example
Application Trace | Framework Trace | Full Trace
app/controllers/pets_controller.rb:7:in `index'
帮助将不胜感激,如果我需要澄清一些事情,请告诉我。
提前致谢。