【发布时间】:2012-05-13 06:03:17
【问题描述】:
基本上我有一个使用 Devise 的应用程序,我有一个用户模型和一个议程模型。议程“belongs_to”用户和用户“has_many”议程,这些是我的数据库关系。我可以启动 IRB 并正确获取数据库数据 用户 = User.first 用户议程 我将获得属于该用户的所有帖子的列表 我的问题在登录时出现,用户被重定向到 home#index 但我在 Home#index undefined method `agendas' for nil:NilClass 中得到 NoMethodError 我确定我错过了一些东西。我的议程控制器中是否也需要索引方法? ..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
【问题讨论】:
-
发现了我的问题 ...home.html.erb 应该是 current_user.agendas.any?
-
但是议程没有填充,有人看到显示代码有任何问题吗?
标签: ruby-on-rails ruby devise