Uygulamam için bir raporlama sistemi yapıyorum. Örnek bir ReportKind yarattım, ancak birçok şeyi bildirebildiğim için farklı rapor türleri grubu oluşturmak istedim. Çok fazla davranış paylaştıklarından, miras kullanmayı deniyorum.Raylar Modellerdeki kalıtım modeli
model ReportKind << ActiveRecord::Base
end
ve örneğin oluşturuldu::
Yani ana modeli var ben türü sütun ettik benim masa report_kinds isemodel UserReportKind << ReportKind
end
ve burada dek onun tüm çalışma. Sorunum formlarda/denetleyicide. Ben ReportKind.new
yaptığınızda
, benim form '* report_kind *' öneki ile inşa edilmiş. Bir hatta ile UserReportKind, olsun, 'user_report_kind' öneki inşa edecek formu.
Bu, kontrolörlerdeki herşeyi karıştırıyor, çünkü bazen param [[report_kind], bazen param [: user_report_kind], vb. Yaptığım her başka miras için param olacak.
uzağa için kullandıkları 'report_kind' öneki zorlamak için yine de var mı? Ayrıca, denetleyicideki "type" özniteliğini zorlamak zorunda kaldım, çünkü formdan doğrudan değeri almadı, bunu yapmanın güzel bir yolu var mı? Kalıtsal modeller adlarında göre rotaları oluşturmaya çalışıyordum beriYönlendirme, başka bir sorun oldu. Aynı modele işaret eden rotalarda diğer modelleri ekleyerek bunu aştım.
<% = form.hidden_field: tipi: = değer> 'UserReportKind' %> benim için çalıştı. – cider