[]:Array 的未定义方法`order'
undefined method `order' for []:Array
我有以下代码,我根据用户是否是管理员为他们加载活动。用户只能看到他们自己的 activity 提要,而管理员可以看到整个流。这是与朋友等分享 activity 提要的前奏。
def index
if current_user?
@incidents = Incident.find_all_by_user_id(current_user.id).order("created_at desc")
else
@incidents = Incident.all.order("created_at desc")
end
end
我收到上面提到的错误 (undefined method "order" for []:Array
)。它似乎是 .order
参考,但我已经检查了 rails 指南,它似乎是正确的语法。
有什么想法吗?
尝试将 find_by...
更改为 where
,因此:
def index
if current_user?
@incidents = Incident.where(user_id: current_user.id).order("created_at desc")
else
@incidents = Incident.all.order("created_at desc")
end
end
应该有效:-)
可以简化和优化#index
操作方法(通过将find_all_by
替换为where
)到:
def index
clause = current_user? && Incident.where(user_id: current_user.id) || Incident
@incidents = clause.order("created_at desc")
end
我有以下代码,我根据用户是否是管理员为他们加载活动。用户只能看到他们自己的 activity 提要,而管理员可以看到整个流。这是与朋友等分享 activity 提要的前奏。
def index
if current_user?
@incidents = Incident.find_all_by_user_id(current_user.id).order("created_at desc")
else
@incidents = Incident.all.order("created_at desc")
end
end
我收到上面提到的错误 (undefined method "order" for []:Array
)。它似乎是 .order
参考,但我已经检查了 rails 指南,它似乎是正确的语法。
有什么想法吗?
尝试将 find_by...
更改为 where
,因此:
def index
if current_user?
@incidents = Incident.where(user_id: current_user.id).order("created_at desc")
else
@incidents = Incident.all.order("created_at desc")
end
end
应该有效:-)
可以简化和优化#index
操作方法(通过将find_all_by
替换为where
)到:
def index
clause = current_user? && Incident.where(user_id: current_user.id) || Incident
@incidents = clause.order("created_at desc")
end