Ruby on rails (Ruby/Rails)在尝试引用变量时未定义的方法
因此,继续我的活动资源和活动记录冒险,我试图在活动资源中执行一个简单的get方法,但每次我尝试引用变量时,它都会抛出一个未定义的方法异常。也许最好用代码来解释它Ruby on rails (Ruby/Rails)在尝试引用变量时未定义的方法,ruby-on-rails,ruby,activerecord,methods,activeresource,Ruby On Rails,Ruby,Activerecord,Methods,Activeresource,因此,继续我的活动资源和活动记录冒险,我试图在活动资源中执行一个简单的get方法,但每次我尝试引用变量时,它都会抛出一个未定义的方法异常。也许最好用代码来解释它 class UserRequest < ActiveResource::Base self.site = "http://localhost:3008" def get_status puts self.status return self.status end 另一侧的活动记录由URL、深度和状
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明确的可能性是,我引用的变量是错误的,尽管我尝试了多种不同的方式,从self称之为asides
或者我关于类如何在活动记录中构建的概念是错误的。可能是我一直听说的自我初始化
有人愿意帮忙吗?不理解获取状态方法的目的。 作为一个属性,您不需要定义该方法,Rails会为您定义。
因此@received.status应该可以正常工作。如果get\u status方法所做的只是返回self.status,那么您可以直接通过@received.status访问它。不需要定义单独的getter方法,我在模型中看不到status属性。在添加rake db:migrate之后,您是否执行了该操作?目前get_status方法所做的一切都是使用变量进行响应,但在我完成之后,它将通过net::httpI将结果作为json发布,目前只想引用该变量。完成后,我希望它用json post请求进行响应