Skip to content


There are scenarios where in order to be able to submit a form, an input should be present but inaccessible to the user. An example of this might be where you want to set a field by default without the option to change, or see it. Hidden will render a <input type="hidden" /> element on the Edit and New page.

Hidden will only render on the Edit and New views.

Example usage:

# Basic
field :group_id, as: :hidden

# With default
field :user_id, as: :hidden, default: -> { }

# If the current_user is a admin
# 1. Allow them to see and select a user.
# 2. Remove the user_id field to prevent user_id it from overriding the user selection.
# Otherwise set the user_id to the current user and hide the field.
field :user, as: :belongs_to, visible: -> { context[:current_user].admin? }
field :user_id, as: :hidden, default: -> { }, visible: -> { !context[:current_user].admin? }