У меня есть форма поддержки, где пользователи могут отправлять сообщения.Эта форма поддержки должна иметь флажок, и сообщение может быть отправлено, только если флажок был активирован.Пока что в моей модели 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