Я хотел бы отобразить одну форму, в которой каждый пользователь может редактировать разные поля.
В настоящее время код выглядит следующим образом:
<% if can? :update, item %>
` <%= f.text_field :title %>
<% else %>
<%=h f.object.title %>
<% end %>
Я могу упаковать это всерия помощников (по одному для каждого типа поля), но я также должен проверить в контроллере, может ли пользователь обновить все отправленные поля (в случае, если злонамеренный пользователь пытается отправить поля, для которых он не авторизован).
Есть ли более чистая схема в рельсах для этого типа задач?В идеале я хотел бы определить эти разрешения доступа в модели и сделать так, чтобы изменения распространялись на контроллер и представление.
Редактировать:
Использование тега readonly
не приемлемый вариант;Он не заботится о проверках и заменяет логику представления большим количеством CSS.Не лучший компромисс.