class Decidim::Meetings::CreateAnswer
This command is executed when the user creates an Answer in a meeting poll.
def answer_question
def answer_question answer = Answer.new( user: current_user, questionnaire: @questionnaire, question: form.question ) form.selected_choices.each do |choice| answer.choices.build( body: choice.body || translated_attribute(AnswerOption.find_by(id: choice.answer_option_id)&.body), decidim_answer_option_id: choice.answer_option_id ) end answer.save! end
def call
Creates the answer if valid.
def call return broadcast(:invalid) if form.invalid? transaction do answer_question end broadcast(:ok) end
def initialize(form, questionnaire)
def initialize(form, questionnaire) @form = form @questionnaire = questionnaire end
def invalid?
def invalid? form.invalid? end