У меня есть модель Group
и модель Message
, каждая из которых - HABTM. Я пытаюсь установить валидацию для своей основной формы, которая заключается в отправке SMS-сообщения определенным группам. Прямо сейчас у меня есть тело сообщения, проверенное с помощью presence: true
, которое работает нормально, но в моей модели группы я хочу проверить имя, которое будет присутствовать, но как заставить их проверять, когда я вызываю метод create в контроллере сообщений? Я покажу свой код для уточнения.Настройка проверки правильности. Использование двух моделей в одном виде
Вот group.rb
class Group < ActiveRecord::Base
has_and_belongs_to_many :people
has_and_belongs_to_many :messages
validates :name, presence: true
end
Теперь message.rb
class Message < ActiveRecord::Base
has_and_belongs_to_many :groups
validates :body, presence: true
end
Вот мой message_controller.rb
def create
@message = Message.create(message_params)
if @message.save
run_at_time = @message.send_at.present? ? @message.send_at : Time.zone.now
people = Person.in_groups(message_params[:group_ids])
if people.any?
people.each do |person|
person.delay(run_at: run_at_time).send_message(@message.body)
end
flash[:success] = "Messages on their way!"
end
redirect_to root_path
else
render "new"
end
end
Для большего понимания я хочу, чтобы моя форма отображалась как «Группы не могут быть пустыми», а также «Тело не может быть пустым». Если ничего не выбрано.