#ruby-on-rails #inherited-resources
#ruby-на-рельсах #унаследованные ресурсы
Вопрос:
Унаследованные ресурсы — это мощная жемчужина, которую я могу использовать, чтобы избежать множества повторяющихся вещей. Но я все еще не понимаю, почему он может получить объект через end_of_association_chain, даже если я не передавал ничего, связанного с его моделью belongs_to
Ответ №1:
Попробуйте изучить маршруты Rails. AFAIK end_of_association_chain
создает свое значение на основе маршрутов.
/book/1/pages
-> вы получаете первые страницы книги внутри end_of_association_chain
.
Смотрите также: https://github.com/activeadmin/inherited_resources#overwriting-defaults
end_of_association_chain возвращает ваш ресурс после вложения всех ассоциаций и областей (подробнее об этом ниже).
Я не заглядывал в end_of_association_chain
исходные коды, но я предполагаю, что «ассоциации» и «области» здесь означают именно ключевые слова для построения маршрута, такие как:
resource :production, only: [:update], controller: :production, selected_navigation_category: 'production', path: 'marketing' do
resources :photos, only: %i[index update destroy] do
collection do
get 'set/:photo_set', to: :photo_set, as: :photo_set
У меня есть PhotosController#photo_set
метод, который содержит end_of_association_chain
. Мне также было интересно — что это за значение — пока я не погрузился в файл routes.