Сопоставить метод доступа на activerecord для атрибута на activeresource? - PullRequest
3 голосов
/ 18 июня 2011

Некоторые из атрибутов, указанных в ActiveModel, не являются атрибутами БД, которые просто определены как установщик геттераПроблема заключается в том, что значения этих атрибутов не отражаются в записи активного ресурса на стороне клиента.

    #server side code
    class Item < ActiveRecord::Base
       #not null name attribute defined on db 
    end

   class SpecialItem < ActiveRecord::Base
      #nullable item_name attribute defined on db

      #association many to one for item defined here

      #name accessor 
      def name
         if !item_name.nil?
           return item_name
         else
           return item.name
         end 
      end  
   end

   #client side code
   class SpecialItem < ActiveResource::Base
        schema do
      attribute 'name', 'string'
        end
   end

Я получаю нулевое значение для имени атрибута для записи SepcialItem на клиенте.В основном я пытаюсь сопоставить имя метода доступа к атрибуту name на стороне клиента.

Какое возможное решение?

1 Ответ

1 голос
/ 07 апреля 2012

ActiveResource - это средство связи со службой RESTful, для которого требуется определить переменную класса site, т.е.

   class SpecialItem < ActiveResource::Base
     self.site = 'http://example.com/'
     self.schema = { 'name' => :string}
   end

Это будет использовать коллекцию Rails по умолчанию и соглашения об элементах. Таким образом, для вызова SpecialItem.find (1) ActiveResource будет направлять на GET http://example.com/specialitems/1.json

...