Ruby on rails 未定义的项目

Ruby on rails 未定义的项目,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,所以昨天我问了一个关于为当前用户获取项目的问题。我遇到了一个问题。因此,今天我正在为用户显示类别和任务以及任何讨论。当我加载页面以查看此内容时,我得到: NoMethodError in UsersController#show undefined method `projects' for #<User:0xad5823f4> Rails.root: /home/adam/Documents/Aptana Studio 3 Workspace/StartPoint Applic

所以昨天我问了一个关于为当前用户获取项目的问题。我遇到了一个问题。因此,今天我正在为用户显示类别和任务以及任何讨论。当我加载页面以查看此内容时,我得到:

NoMethodError in UsersController#show

undefined method `projects' for #<User:0xad5823f4>
Rails.root: /home/adam/Documents/Aptana Studio 3 Workspace/StartPoint

Application Trace | Framework Trace | Full Trace
app/controllers/users_controller.rb:25:in `show'
Request

Parameters:

{"id"=>"4"}
表名为项目、任务、类别和讨论。我在其他任何地方使用这个都没有问题,为什么我会看到这个错误

如果您需要更多的代码,我可以显示它。错误很明显,但我再次使用这种类型的调用else来显示特定于项目的信息,例如项目类别或任务。这可能与我的用户与类别、讨论、任务等之间的关系有关吗?因为我在show方法中列出的每个表中都有用户id


我也想到了这一点,因为今天早上我们讨论了这个话题:当前用户似乎错了,因为如果我点击Bobs profile,我会看到我所有的资料没有?是否应该是更具体的用户id?

您是否在每个模型中建立了关联

class User < ActiveRecord::Base
  has_many :projects
end
class用户
还要确保
current_user
实际上是一个用户对象,而不是某个瘦代理

通常,您需要区分会话用户和显示的用户。这就是为什么像
current\u user
这样的名字是有害的。我建议使用
session\u user
来指代登录用户,使用
@user
来指代正在显示的用户


一些登录系统只定义了一个
当前用户
方法,但是给它加别名并不困难。那样的话,它只是设计上有缺陷。

你能发布你的
项目
模型吗?至少第一行请一次只问一个问题。问多个问题会导致一系列非常混乱的注释和答案,使整个问题无法使用。因此,是否有一些示例说明如何显示其他人的个人资料而不是我的个人资料?将
当前用户
替换为
@user
,并确保提前指定了实例变量。
class User < ActiveRecord::Base
  has_many :projects
end