Я разрабатываю веб-приложение с использованием рельсов 4 в первый раз. Я делаю все мои ассоциации моделей двунаправленными и использую inverse_of везде, где это разрешено.рельсы 4 Когда требуется «inverse_of»?
Из-за чтения документации у меня сложилось впечатление, что это, вероятно, лучшая практика, но это никогда не было четко изложено в любом месте.
Я был бы признателен за любые общие рекомендации в этом отношении от опытных разработчиков рельсов. Надеюсь, этот вопрос не слишком расплывчатый, чтобы иметь здесь ценность.
Спасибо!
Update: В дополнении к нестандартным названиям, как представляется, два основные дополнительные случаи, где требуется установка явно inverse_of:
- для INVALID_AUTOMATIC_INVERSE_OPTIONS (http://www.rubydoc.info/docs/rails/ActiveRecord/Reflection/AssociationReflection)
- , если Вы принимаете Вложенные атрибуты - это потому, что родительский объект еще не сохранен и, следовательно, не имеет идентификатора. См. http://viget.com/extend/exploring-the-inverse-of-option-on-rails-model-associations
Спасибо. Я обнаружил, что я все еще сталкивался с проблемой, описанной здесь: http://viget.com/extend/exploring-the-inverse-of-option-on-rails-model-associations под заголовком _Создание объекта и его дети через accepts_nested_attributes_for в: has_many association._ Я считаю, что проще просто установить инверсии для каждой ассоциации, и таким образом мне не нужно беспокоиться о том, будет ли это «просто работать» для данного случая .. –
@Nesteddoll Легче в краткосрочной перспективе, возможно. Я управляю буквально сотнями приложений Rails для производства, и я могу с уверенностью сказать, что уборка вашего приложения ненужным кодом, который вы не понимаете, быстро станет кошмаром для обслуживания. Испытайте себя лучше, не добавляйте дополнительный код в свое приложение, которое вам не нужно, и не добавляйте код, который вы не понимаете. Ваше будущее будет благодарно вам. –
спасибо. Я ценю то, что вы говорите, - и я рассмотрю более подробно. –