2012-01-03 1 views
0

мне нужно/хочу поставить в пользовательский метод с activeresourceActiveresource пользовательский метод: спецификация идентификатор

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

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

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

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

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

ответ

2

В модели «Ресурс», переопределить метод to_param

def to_param 
    crazy_key.to_s 
end 
+0

Это уже есть от предыдущего, я использую это ключ как идентификатор с AR, но не как to_s – blueblank

1

Я предполагаю, что вы хотите использовать что-то другое вместо: идентификатор в 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 

 Смежные вопросы

  • Нет связанных вопросов^_^