Итак, продолжая свое приключение с активным ресурсом и активной записью, я пытаюсь выполнить простой метод get в активном ресурсе, но каждый раз, когда я пытаюсь сослаться на переменную, он выдает исключение метода undefined. Возможно, лучше объяснить это в коде.
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
>>
Кажется, когда я ссылаюсь на часть .status активной записи, он ищет метод, а не переменную, которая, как я думал, была возвращена в .find. Та же проблема возникает на консоли на стороне сервера.
2 определенные возможности: я неправильно ссылаюсь на переменные (хотя я пробовал несколько разных способов их вызова, кроме self.whatever)
Или мое представление о том, как строятся классы в активной записи, неверно. (возможно, это self.initialise, о котором я постоянно слышу)
Кто-нибудь хочет помочь?
status
в вашей модели. Вы сделалиrake db:migrate
после того, как добавили его? - person user482594   schedule 15.07.2011