Module: Decidim::FormFactory
- Extended by:
- ActiveSupport::Concern
- Included in:
- Accountability::ResultsCsvImporter, Admin::ApplicationController, AmendmentsController, Blogs::PostsController, CollaborativeTexts::DocumentsController, CollaborativeTexts::SuggestionsController, Debates::DebatesController, Demographics::ApplicationController, Devise::OmniauthRegistrationsController, Devise::RegistrationsController, EditorImagesController, FollowsController, Initiatives::CreateInitiativeController, Initiatives::InitiativeSignaturesController, Initiatives::InitiativeVotesController, Initiatives::InitiativesController, Meetings::MeetingClosesController, Meetings::MeetingsController, Meetings::Polls::ResponsesController, Messaging::ConversationsController, NewslettersOptInController, Proposals::CollaborativeDraftsController, Proposals::ProposalsController, ReportUsersController, ReportsController, SearchesController, System::ApplicationController, UploadValidationsController, UserProfile
- Defined in:
- decidim-core/app/controllers/concerns/decidim/form_factory.rb
Overview
A factory to build forms. This is done to add a context when possible, so that forms can act based on data that varies between requests. This is mostly done so that i18n form fields can be properly validated with the current_organization available locales, instead of doing so against all the available locales in the platform. The current_organization varies between requests, so the form need some way to access this data.
Examples:
# in a controller, mostly in a `create` action:
form(MyFormClass).form_params(params)
# in a controller, mostly in a `new` action:
form(MyFormClass).instance
# in a controller, mostly in an `edit` action:
form(MyFormClass).form_model(@my_resource)