Маршрутизация одиночного стола?

У меня есть одно наследование таблицы, которое отлично работает для моего приложения. У меня есть два подтипа пользователя (Athlete and Company), которые наследуют пользователя супертипа.

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

Ответ 1

вы можете сделать это намного проще, Rails распознает, к какому типу пользователя он должен иметь дело, поэтому, допустим, у вас есть переменная экземпляра @user, которая может быть либо спортсменом, либо компанией, вы можете просто сделать это

= link_to "Profile", @user

BAM! Rails magic!

Ответ 2

<% User.find(:all).each do |user| %>
  <%= link_to "user", eval("#{user.type.underscore}_path(user)") %>
<% end %>

Это приведет к созданию пути в соответствии с типом пользователя (сохраненным в поле типа). Не забудьте добавить тип пользователей в конфигурацию маршрутов.

Надеюсь, это поможет.

рассматривает