Updated Próbuję dostać Dziewczyna z fabryki, aby wypełnić mój „data wydania” pole z datą, losowej daty, szczerze dowolną datę w tej chwili, bo wciąż otrzymuję "Validation nie powiodło się: data wydania nie może być puste "błędy, gdy uruchomię moje item_pages_spec.rbJak sprawić, by dziewczyna z fabryki utworzyła datę?
Po jakiejś pomocy poniżej, jego jest to, co mam w moim factory.rb na stronach przedmiotów, ale próbowałem teraz wielu różnych rzeczy.
factory :item do
sequence(:name) { |n| "Item #{n}" }
release_date { rand(1..100).days.from_now }
end
Idealnie byłoby wierszem, który tworzy różne losowe daty dla każdej wyprodukowanej fabrycznie instancji przedmiotu.
Data premiery nie może być pusta, ponieważ w moim modelu przedmiotu mam validates :release_date, presence: true
. Idealnie byłoby tam zatwierdzenie, które upewnia się, że podana data jest datą, ale również akceptuje NIL, ponieważ nie zawsze będę mieć dostępną datę.
Każda pomoc bardzo ceniona. Nie mogłem znaleźć nic konkretnego online o dziewczynie z fabryki i datach.
model
class Item < ActiveRecord::Base
validates :name, presence: true, length: { maximum: 50 }
validates :release_date, presence: true
koniec
Item_pages_spec.rb
require 'spec_helper'
describe "Item pages" do
subject { page }
describe "Item page" do
let(:item) { FactoryGirl.create(:item) }
before { visit item_path(item) }
it { should have_content(item.name) }
it { should have_title(item.name) }
end
end
'RELEASE_DATE {rand (1..100) .days.from_now}' pamiętać, że można wstawić dowolny zakres w 'funkcji rand'. Btw, [przeczytaj dokument proszę] (https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md) – j03w
Przeczytałem dokument i wypróbowałem z niego kilka rozwiązań. Wygląda na to, że problemem jest mój walidator, ponieważ ani twoje rozwiązanie, ani te poniżej nie przekazują moich testów. Będę musiał znaleźć lepszą alternatywę dla "sprawdzania poprawności" data_publikacji, obecność: prawda ", ponieważ jestem pewien, że zarówno twój powinien działać. Dziękuję, – Ossie
opublikować swój model i fragment kodu testowego? – j03w