是否有一种标准方法可以从给定的URL获取Ruby on Rails中的ActiveRecord项? 我在外部RDF数据库中有一些数据,我可以查询以获取Ruby on Rails代码中的项目的URL。然后我想在Ruby on Rails程序中获取属于这些URL的ActiveRecord对象。 来自数据库的查询结果示例:
"http://localhost:3000/data_files/5",
"http://localhost:3000/assays/3",
"http://localhost:3000/assays/5"
我知道我可以解析这个并致电:
DataFile.find(5)
Assays.find(3)
Assays.find(5)
但我认为可能有一些标准的代码可以做到这一点。 正如您所看到的,我可以搜索多种类型的对象,因此我需要获取正确的对象类型以及使用ID号。
答案 0 :(得分:1)
在你的基本例子中,这样的事情应该有用。
def get_object_from_url url_string
class_string = url_string.split('/')[-2]
object_id = url_string.split('/')[-1]
class_string.camelize.constantize.find_by_id(object_id)
end
根据网址的不同,需要更复杂的逻辑。