Bir ilişki bulunamadığında, iç içe geçmiş form ilişkilendirmeleri için NotFound istisnasından kurtulmam gerekiyor.Raylar 4: Kaçış Bulunamadı Yuvalanmış form için hata bulunamadı
Örneğin, ben
class User < ActiveRecord::Base
has_many :user_selection_criteria
accepts_nested_attributes_for :user_selection_criteria, :reject_if => lambda { |t| t['brand_id'].nil? }, :allow_destroy => true
end
ve özelliklerini günceller
if @user.update_attributes user_params
render
else
render json: @user.errors, status: :unprocessable_entity
end
var parametreler bu izin yoktur ve herşey yolunda.
Bu özniteliklerle iç içe form kullanıyorum. vb
user_selection_criteria_attributes[0][id]
user_selection_criteria_attributes[0][brand_id]
user_selection_criteria_attributes[0][_destroy]
user_selection_criteria_attributes[1][id]
user_selection_criteria_attributes[1][brand_id]
user_selection_criteria_attributes[1][_destroy]
user_selection_criteria_attributes[2][id]
user_selection_criteria_attributes[2][brand_id]
user_selection_criteria_attributes[3][_destroy]
...
Hiçbir sorun yok, i:
bırak kimliği boş - yeni bir rekor mevcut kaydın
kullanın kimliği oluşturulur - İlgili kayıt güncellenir. i var olmayan kayıt id kullandığınızda Başka bir kullanıcı bu rekoru silindiğinde
Ama, örneğin, i t ID = 12
ile Kullanıcı için ID = 13 ile UserSelectionCriterium bulmak bir hatayı kalamayasın ' olsuni
begin
if @user.update_attributes user_params
render
else
render json: @user.errors, status: :unprocessable_entity
end
escape
render
end
Hata kaçan, ancak nitelikleri kaydedilmez kullanın. Ama bu bekleniyor.
Soru: Bu hatayı nasıl susturur/kaçar, bu kaydın artık olmadığını görmezden gelebilir ve diğer geçerli ilişkileri kaydedebilir miyim?
I.I.I.e. 13 ile iç içe geçmiş ilişki mevcut olmadığında, ancak 14 ile ilişki var ise, ilişki 13 yok sayılır ve 14 normal şekilde işlenir.
olasılığınız bunun olmasına ve hangi sıklıkta? Şahsen rahatsız etmem. 'Find_by (id: ...)' gibi bir hata yapmayan ve bir doğrulama hatası döndüren bir bulucu kullanırdım. – Mohamad