我一直在努力实现自己的ORM。我想知道rails path helper是如何从对象中提取ID的。例如,我如何为我的ORM做这项工作?
@contact = Contact.first
contact_path(@contact)
非常感谢任何帮助!
更新
我的对象确实有一个ID属性并响应它。但是路径助手却返回错误。
答案 0 :(得分:1)
简而言之,您希望与activemodel兼容。这将使url助手,form_for(@contact)等工作。
你也可以(可选)使用一堆处理的模块 验证,脏属性等等。
您必须实施少数几种方法。还有一个
ActiveModel::Lint模块,用于测试您的这些实现
原语是有效的,也可以作为文档。您需要实施to_param
和persisted?
。我认为只有link_to 'foo', @contact
答案 1 :(得分:0)
该方法检查您是否已将对象或整数传递给它。如果它是一个对象,并且该对象具有id
方法(respond_to?(:id)
),则它使用其ID。很简单。