2012-01-03 75 views
0

我需要/想提出一个自定义的方法与的ActiveResource的ActiveResource自定义方法:ID规范

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的ID键,但不是to_s – blueblank 2012-01-03 20:35:21

1

我假设你想使用的东西,而不是其他: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