рельсы найти по пути - PullRequest
       0

рельсы найти по пути

0 голосов
/ 24 августа 2011

Может быть, я не ищу правильные ключевые слова, но: возможно ли выполнить поиск по заданному пути к объекту?

У меня есть '/ business / 2', и я просто хотел бы сделать что-то вроде @object = Business.find ('/ business / 2'), чтобы получить этот объект

Один из способов:

ids = params[:who_id].split('/')
@object = ids[1].singularize.constantize.find(ids[2])

Но мне интересно, есть ли встроенный способ, так как это казалось мне чем-то совершенно нормальным.

1 Ответ

0 голосов
/ 24 августа 2011

Если вы знаете, что id будет последним в строке, то вы можете разделить строку на "/" и взять последний элемент. Если вы не уверены, вы можете использовать regexp.

Если вы также хотите выполнить поиск в зависимости от того, что находится в вашей строке (вы не знаете имя класса)), тогда используйте regexp, чтобы сопоставить название модели, а затем используйте эти помощники: http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html чтобы получить название класса.

Как:

klass = _yor_extracted_string.singularize.constantize
object = klass.find(_id_here_)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...