Пользовательский метод Activeresource: спецификация id - PullRequest
0 голосов
/ 03 января 2012

Мне нужно / я хочу поставить пользовательский метод с активным ресурсом

myresource.put(:go_crazy, {:go => "go", :crazy => "crazy"})

, который идет на сервер, где ресурс

/myresource/:id(pretend is the integer 1)/go_crazy?go=go%crazy=crazy

Только мне нужно указать, чтоthe: id - это что-то еще, например 'myresource.crazy_key'

Я действительно нашел другой способ сделать это в качестве обходного пути, но я не могу понять, что мне нужно сделать, чтобы указатьесли я вообще смогу это сделать.

Ответы [ 2 ]

2 голосов
/ 03 января 2012

В вашей модели "Ресурс" переопределите метод to_param

def to_param
    crazy_key.to_s
end
1 голос
/ 05 октября 2012

Полагаю, вы хотели использовать что-то другое вместо: id в URL.Затем вы должны определить атрибут, который будет действовать как первичный ключ в вашем активном классе ресурсов:

class FooBar < ActiveResource::Base
    self.site="http://host/root/"
    self.primary_key = :name
end

, тогда

FooBar.find('XYZ').get(:subfoo)

запросит

http://host/root/foo_bar/XYZ/subfoo
...