本质上,我有一个使用 Devise 的应用程序,我有一个用户模型和一个议程模型。议程“belongs_to”用户和用户“has_many”议程,这些是我的数据库关系。我可以启动 IRB 并正确获取数据库数据 user = User.first user.agendas,我将获得属于该用户的所有帖子的列表我的问题在登录时出现,用户被重定向到 home#index 但我在 Home#index undefined method `agendas' for nil:NilClass 中得到 NoMethodError 我确定我错过了什么。我需要一个 index 方法吗我的议程控制器也是?..app/views/home/index.html.erb
<h3>Home</h3>
<div class="row">
<div class="span8">
<% if @user.agendas.any? %>
<h3>Agendas</h3>
<ol class="agendas">
<%= render @agendas %>
</ol>
<% end %>
</div>
</div>
我的 home_controller.rb
class HomeController < ApplicationController
before_filter :authenticate_user!
def index
@agendas = current_user.agendas.paginate(page: params[:page])
end
我的议程控制器只有一个用于未来代码的创建和销毁存根。它的模型/agenda.rb
class Agenda < ActiveRecord::Base
attr_accessible :title
belongs_to :user
validates :title, presence: true, length: { maximum: 140 }
validates :user_id, presence: true
default_scope order: 'agendas.created_at DESC'
end