Rails用户类没有响应方法,给出未定义的方法错误

时间:2012-07-24 01:10:54

标签: ruby-on-rails ruby

我已经生成了User模型以及另外两个名为UpdateRound的模型。 User类响应控制台中的回合和更新,但是当我在浏览器中调用它时不响应。

在控制台

:001 > user = User.first
:002 > user.updates
 Update Load (0.2ms) SELECT "updates".* FROM "updates" WHERE "updates"."user_id" = 1
 => [] //expected since there are no updates in the database but it responds

/ user / 1 /更新错误

undefined method 'updates' for #<Class:0x98afa1c>

User.rb

class User < ActiveRecord::Base

  attr_accessible :admin, :name, :provider :uid
  has_many :rounds
  has_many :updates

end

Update.rb

class Updates < ActiveRecord::Base

  attr_accessible :user_id :recpcount
  belongs_to :user
end

Updates_controller.rb

class UpdatesController < ApplicationController

  def index
     @hist = User.updates.find(params[id])
  end
end

我确定我在某个地方弄乱了一些简单的东西。谁能引导我朝着正确的方向前进?谢谢!

2 个答案:

答案 0 :(得分:1)

在控制台中,您在User 实例上调用updates,但在控制器中,您在User 本身上调用它。< / p>

您可能希望:

@hist = User.find(params[:id]).updates

答案 1 :(得分:0)

@hist = User.updates.find(params[id])

这是你的问题。 User该实例没有updates。你可能想要:

@user = User.find(params[id])
@hist = @user.updates