我有一个ConversationsController有两个相同的动作:
def index
@conversations ||= current_user.mailbox.inbox.all
@trash ||= current_user.mailbox.trash.all
end
def trashbin
@conversations ||= current_user.mailbox.inbox.all
@trash ||= current_user.mailbox.trash.all
end
唯一的区别是视图中显示的信息。索引页面显示数据就好了。但是,对于出现在trashbin视图中的每个实例变量,我都会收到以下错误:
undefined method 'count' for nil:NilClass
查看:
<%= @conversations.count %>
计算恰好是视图页面中使用的第一个方法。除了一些纯文本之外,两个动作之间的视图几乎相同。我很难过为什么我在一个动作上出错了。我在索引页面上使用<%= @conversations.count %>
,它工作正常。
唯一的可能是路径文件出错。我在使自定义垃圾箱路由工作时遇到了一些麻烦,所以我认为问题在于路径文件:
resources :conversations do
member do
post :reply
post :trash
post :untrash
end
collection do
get :trashbin, :action => 'trashbin'
end
end
有什么想法吗?
谢谢!
编辑:更新了路线代码(所有路线代码均已发布)。
此外,这是终端中生成的错误:
Started GET "/conversations/trashbin" for 127.0.0.1 at 2014-01-02 17:38:34 -0500
Processing by ConversationsController#trashbin as HTML
User Load (0.7ms) SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
Rendered conversations/trashbin.html.erb within layouts/application (4.0ms)
答案 0 :(得分:0)
这对我来说是一个新手的错误。控制器中的“相同”动作并不完全相同。 “私有”下列出了无法正常工作的控制器操作,这解释了为什么视图-_-无法访问实例变量。
抱歉浪费你的时间大家!