У меня возникает проблема при попытке применить условие if if к проверке validates_associated. Условие if работает для validates_presence_of, но не для validates_associated, и форма (с двумя моделями в ней) работает правильно, за исключением того, что проверка все еще возвращает ошибку, независимо от того, является ли условие if истинным или ложным.Rails - validates_associated with: if condition
validates_associated :departures, :if => :cruise?
validates_presence_of :ship_name, :if => :cruise?
def cruise?
item_marker == 1
end
# I even tested it using this, and it still returned a validated_associated error
def cruise?
false
end
#form item
<%= departure_form.date_select :date, :index => (departure.new_record? ? '' :
departure.id), :start_year =>Time.now.year, :order => [:month, :day, :year ],
:prompt=>true %>
Я использую дату выбора для: поля вылета, с запросом для значений по умолчанию (то есть первый выбранный вариант для каждого поля с иметь значение = «»). Я считаю, что это то, что вызывает проблему. Я могу удалить приглашение и просто удалить даты отправления для non_cruises в контроллере, но это кажется неаккуратным. есть ли у кого-нибудь предложения? Обратите внимание, что в этом коде используются части рецепта «Обработка нескольких моделей в одной форме» Райана Бейтса.
Должно работать? ^^ – Lichtamberg
Coudl Вы покажете мне свою модель? Какие у вас отношения? – Lichtamberg