Генерация URL-адреса вложенного ресурса без его родителя (без использования мелкого) - PullRequest
0 голосов
/ 19 мая 2018

В нашем приложении многие ресурсы вложены в общий ресурс, представляющий организацию.Большинство URL-адресов содержат идентификатор организации по следующему шаблону: /:organization_id/notifications/:id.

Моя проблема заключается в том, что мне всегда нужно указывать текущей организации генерировать URL-адрес для любой модели.Например, ссылка на существующее уведомление будет выглядеть следующим образом: link_to [@organization, @notification].

Поскольку уведомление уже принадлежит организации, мне было интересно, можно ли сгенерировать мой URL-адрес, используя link_to @notification, и оно фактически сгенерируетURL-адрес, включая идентификатор организации уведомления.Я надеялся, что конфигурация в модели сможет этого добиться, но я не смог найти ничего в руководствах, документах или исходном коде Rails.

Я бы хотел, чтобы идентификатор организации был виден вURL, поскольку это информация, используемая нашими клиентами.Поэтому я не хочу использовать мелкие вложенные ресурсы для этой проблемы.

Мы используем Rails 5.2.0.

1 Ответ

0 голосов
/ 19 мая 2018

Требуется метод определения маршрута resolve .

Он предназначен для выполнения именно того, что вы хотите: настроить другое поведение при передаче одного экземпляра модели в url_for(как, например, link_to).

В частности, в вашем config/routes.rb что-то вроде:

resolve("Notification") do |note|
  [:notification_organization, note.organization, note]
end

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

...