的ActiveResource自定义方法:ID规范
问题描述:
我需要/想提出一个自定义的方法与的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作为别的东西,如果我能做到的话这一切。
答
在你的“资源”的模式,覆盖to_param
方法
def to_param
crazy_key.to_s
end
答
我假设你想使用的东西,而不是其他: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
它已经在那里以前,我用的作为与AR的ID键,但不是to_s – blueblank 2012-01-03 20:35:21