Rails 4 - Простая проверка check_box_tag не удалась - PullRequest
0 голосов
/ 27 мая 2018

У меня есть форма поддержки, где пользователи могут отправлять сообщения.Эта форма поддержки должна иметь флажок, и сообщение может быть отправлено, только если флажок был активирован.Пока что в моей модели support.rb (только соответствующая часть) есть:

class Support
  include ActiveModel::Validations

  attr_accessor :dataprotection
  validates :dataprotection, :acceptance => true
end

Насколько я понимаю, мне даже не нужна ссылка attr_accessor, поскольку она создает виртуальный атрибут, если: dataprotectionне является частью моей модели, поэтому после добавления: dataprotection я не сделал миграцию.В любом случае, я не сохраняю сообщение и данные в базе данных, я просто отправляю его на адрес электронной почты.

Представление (опять же только соответствующая часть, я использую хамл):

= form_for :support, :url => { :action => "create" }, :html => { :method => :post } do |f|
  = render 'shared/error_messages_support'
    %div
      = check_box_tag 'dataprotection'
      = label_tag(:dataprotection, simple_format(t"support.dataprotection"))

Форма отображается правильно, также появляется флажок и можно нажать.Но если пользователь не проверяет, отправлена ​​ли форма в любом случае, сообщения об ошибке не появляется.

Что мне нужно изменить, чтобы получить сообщение об ошибке, если флажок не отмечен?

Мой контроллер

class SupportsController < ApplicationController

  def new
    @support = Support.new(:id => 1) # id is used to deal with form
  end

  def create
    @support = Support.new(params[:support])
      if @support.save
        flash[:success] = t "support.flashsuccess"
        redirect_to(root_path)
      else
        render 'new'
      end
    end
  end

Мой Gemfile:

ruby '2.0.0'

source 'http://rubygems.org'

gem 'rails', '4.0.0'
gem 'jquery-rails', '2.1.1'
gem 'capistrano', '2.14.1'
gem "therubyracer", '~> 0.11.4'
gem 'carrierwave', '0.8.0'
gem 'haml', '~> 4.0'
gem 'mysql2', '0.3.11'
gem 'rmagick', '2.13.2'
gem 'fancybox2-rails', '~> 0.2.8'
gem 'sitemap_generator', '3.4'
gem 'whenever', '0.7.3', :require => false
gem 'will_paginate', '3.0.5'
gem "friendly_id", "~> 5.0.3"
gem 'turbolinks'
gem 'jquery-turbolinks'
gem 'protected_attributes'
gem 'globalize', '~> 4.0.2'
gem 'sass-rails', '~> 4.0.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'

group :development do
  gem 'rspec-rails', '2.13.2'
  gem 'annotate', '~> 2.4.1.beta'
  gem 'faker', '0.9.5', :require => false
  gem "database_cleaner", "~> 1.0.1"
  gem 'debugger'
end
...