也许我没有在正确的关键词上搜索,但是:是否可以搜索给定的对象路径?
我有'/ business / 2'并且我只想做像@object = Business.find('/ business / 2')这样的东西来获取该对象
一种方法是:
ids = params[:who_id].split('/')
@object = ids[1].singularize.constantize.find(ids[2])
但我想知道是否有内置方式,因为在我看来这是很正常的事情。
答案 0 :(得分:0)
如果您知道id
将是字符串中的最后一个,那么您可以将字符串拆分为"/"
并获取最后一个元素。如果您不确定,可以使用regexp
。
如果您还想根据字符串中的内容执行搜索(您不知道类名),请使用regexp
匹配模型名称,然后使用这些帮助程序:
http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html
得到一个班级的名字。
像:
klass = _yor_extracted_string.singularize.constantize
object = klass.find(_id_here_)