继续我对活动资源和活动记录的冒险我正在尝试在活动资源中执行一个简单的get方法,但每次我尝试引用该变量时,它都会抛出一个方法未定义的异常。也许最好在代码中解释它。
class UserRequest < ActiveResource::Base
self.site = "http://localhost:3008"
def get_status
puts self.status
return self.status
end
另一方的活动记录由URL,深度和状态组成。
所以我按照那样的方式通过控制台,
?> @received = UserRequest.find(10)
=> #<UserRequest:0x101174e98 @prefix_options={}, @attributes={"user_request"=>#<UserRequest:0x10111ddc8 @prefix_options={}, @attributes={"created_at"=>Thu Jul 14 10:43:32 UTC 2011, "depth"=>583, "updated_at"=>Thu Jul 14 10:43:32 UTC 2011, "url"=>"www.mendi.com", "id"=>10, "status"=>"In queue: not started"}>}>
>>
?>
?> @received.get_status
NoMethodError: undefined method `status' for #<UserRequest:0x101174e98>
from /Library/Ruby/Gems/1.8/gems/activeresource-3.0.9/lib/active_resource/base.rb:1401:in `method_missing'
from /Users/shanemoore/Desktop/activeResourceTest/webApps/app/models/user_request.rb:17:in `get_status'
from (irb):47
>>
当我引用activerecord的.status部分时,它正在寻找一个方法,而不是我认为带回到.find上的变量。服务器端控制台也会出现同样的问题。
2个明确的可能性是我引用了错误的变量(尽管我尝试了多种不同的方式来调用它来自己。无论如何)
或者我对如何在活动记录中构建类的概念是错误的。 (可能是我一直听到的这种自我初始化)
有人愿意帮忙吗?
答案 0 :(得分:0)
不了解get_status
方法的目的。
作为属性的状态,您不需要定义该方法,Rails会为您执行此操作。
所以@received.status
应该可以正常工作。