Вы можете посмотреть urligecne в плагине resource_controller и его помощниках URL . Он позволяет вам использовать object_path
или collection_path
и возвращает путь в соответствии с текущим URL, поэтому он просто делает то, что вы хотите.
Вы также можете добавить это грязное и безобразное решение:
# application helper
def collection_path
request.request_uri.gsub(/\/[\d]+[\/]*$/, "")
end
Он должен удалять строки типа "/ 2 /" или "/ 14" или "/" в конце вашего URL. Однако я чувствую себя очень недолго, когда дело доходит до использования регулярных выражений, поэтому будьте осторожны с этим.
Вы можете использовать этого помощника в поле зрения:
<%= link_to "Back", collection_path %>
Также, чтобы сгенерировать edit
путь, вы можете просто добавить строку «edit» в конце текущего URL. Вы можете создать edit_object_path
помощник для этого:
def edit_object_path
request.request_uri.chop('/') + "/edit"
end
Но опять же, это довольно грязное решение, и вы должны быть осторожны.
EDIT:
Когда я смотрю на ответ @dombesz, вероятно, это то, что вы ищете!