Я пытаюсь создать вложенный путь для показа действия вложенного ресурсаRails маршрутов - контекст для вложенного URL ресурса
user.rb
has_many :fan_receives, as: :fanzone_owner, class_name: "FanActivity"
fan_activity.rb
belongs_to :fanzone_owner, polymorphic: true
В моем routes.rb
match ":fanzone_owner_id/posts/:id", to: "fan_activities#show", via: :get
Путь работает, но fanzone_owner_id может быть чем угодно. Для примера,
example.com/1/fan_activities/2 работы
example.com/2/fan_activities/2 также работает
example.com/anythingatall/fan_activities/2 также работает
Я хотел бы сделать это так, fanzone_owner_id из URL должен совпадать с внешним ключом от fan_activity, в противном случае мы перенаправлять 404.
ли я сделать это с помощью проверки обнаружится в URL в контроллере? Я не уверен, правильный ли этот подход.
В моем случае, все становится немного сложнее потому что fanzone_owner задан как полиморфный, а fan_receives - это еще один класс под названием «fan_activities». Я пробовал использовать вложенные маршруты, но это привело к той же проблеме в вопросе. Моя цель состоит в том, чтобы только маршрут «: show» для fan_receives отображал контекст того, кем является fanzone_owner. – oniiko