2015-06-10 4 views
0

Работает на другом языке в течение нескольких месяцев и пытается вернуться в Rails.Rails Route для добавления дочернего элемента к родительскому

Если у меня есть модель House и модель Door, так что Doorbelongs_toHouse и House has_many Doors.

Если я хочу добавить door к house, я могу использовать маршрут:

add_door_path 

или это

add_door_path(@house) 

И если это так, как я вставлять house_id в него ? Или мне нужно создать для этого новый маршрут? Является ли он частью стандарта resources или это полностью обычай?

ответ

2

, если у вас есть

# routes.rb 
resources :house do 
    resources :doors 
end 

, то вы бы house_doors_path(@house)

Это потому, что в маршрутах вы определили, что двери вложен внутри дома. Вам потребуется параметр внутри, потому что для этого пути требуется идентификатор дома.

Чтобы проверить маршруты, перейдите сюда http://localhost:3000/rails/info/routes.

Если с другой стороны, если у вас есть

# routes.rb 
post '/door/' => 'doors#create', as: :add_door 

новая дверь не будет знать, какой дом он принадлежит. поэтому вы можете добавить post '/house/:id/door ..., которому также нужен параметр дома, поэтому ваш синтаксис будет add_door_path(@house)

Надеюсь, что ответит на ваш вопрос.

Смежные вопросы