В нашем приложении rails 3.2.12 мы хотели бы выборочно отображать поля в виде new/edit
(используя simple_form) на основе правил доступа. Например, для продаж могут отображаться только name
и phone#
клиента. Поскольку мы не знаем, каким будет правило доступа, нам нужно динамически строить представление во время выполнения. Один из способов добиться этого - использовать if
во взглядах, и это сделает просмотр грязным. Мы подумали, что может помочь форма построения custom
. После прочтения нескольких сообщений в Интернете о создании пользовательских форм мы все еще не знали. Может ли кто-нибудь предоставить подробную информацию о том, как реализовать это с помощьюform builder? Спасибо за помощь!Как выборочно отображать поля в новых/редактируемых представлениях с помощью построителя настраиваемых форм в рельсах 3.2.12?
ОБНОВЛЕНИЕ: Поскольку мы не знаем, какое правило доступа должно быть, нам нужно построить dynamically
конструкцию view
во время выполнения.
Забыл упомянуть, что мы используем simple_form. Мы создали собственный модуль аутентификации. Как мы поняли, CanCan не выполняет аутентификацию на уровне столбцов. – user938363
Я вижу. Вы можете сделать CanCan своего рода аутентификацию на уровне столбца с пользовательскими действиями (https://github.com/ryanb/cancan/wiki/Custom-Actions), но похоже, что это не улучшит ситуацию в вашем случае. Поскольку вы уже используете SimpleForm, вы можете подумать о добавлении метода 'доступный_columns_for_role' к вашей модели (возвращающего массив символов), а затем просто запустите цикл представления, вызвав' simple_form_builder.input' для каждого из них. –
И на самом деле attr_accessible уже поддерживает параметр «: as =>: role», поэтому вы можете найти способ прочитать эти параметры в цикле представления. –