Я предполагал, что это было соглашение Rails, что приспособления почтовой программы находятся в папке, названной в честь этого имени класса почтовой программы, и внутри этой папки находятся приборы, названные в честь каждого действия в почтовом классе.
Но когда я запускаю свои модульные тесты, я замечаю, что рельсы поднимаются и выдают ошибку, потому что он пытается отбросить имена тестовой таблицы после того, как класс mailer и класс действия mailer вместе взятые ... это странно, я бы предположил, что rails будет знать лучше и игнорируйте эти приборы, которые просто используются для сравнения форматирования содержимого почтовой программы.
Документация по Rails 3 на почтовые приспособления:
10.2.1 Месть светильников
Для целей модульного тестирования почтовой программы используются приспособления для
приведите пример того, как должен выглядеть результат. Потому что это
примеры электронных писем, а не данных Active Record, как другие приборы,
они хранятся в своем собственном подкаталоге отдельно от других устройств.
Название каталога в пределах test / fixtures напрямую соответствует
имя отправителя. Итак, для почтовой программы с именем UserMailer,
приборы должны находиться в каталоге test / fixtures / user_mailer.
Я использую рельсы 3.0.12
Содержимое теста помощника:
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
fixtures :all
# Add more helper methods to be used by all tests here...
end
макет каталога моих приборов:
test/fixtures/card_sender_mailer/card_update_notificaiton.yml
Это ошибка:
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'monkey_test.card_sender_mailer_card_update_notification' doesn't exist: DELETE FROM `card_sender_mailer_card_update_notification`
Я предполагаю, что, поскольку я загружаю все приборы, он также пытается загрузить это, так как мне загрузить все приборы, кроме почтовых приборов?
Обновление 1
Когда я пытаюсь загрузить приборы с граблями в терминал, я получаю похожую ошибку:
Tasks: TOP => db:fixtures:load
(See full trace by running task with --trace)
/Users/victorstan/Sites/ContactMonkey ∴ bundle exec rake db:fixtures:load
rake aborted!
Mysql2::Error: Table 'monkey_development.card_sender_mailer_card_update_notification' doesn't exist: DELETE FROM `card_sender_mailer_card_update_notification