Типичный способ сделать это в Rails использует «ресурсоемкую» маршрутизацию, которая более или менее естественным образом отображает стандартные действия CRUD на методы в вашем контроллере, используя соответствующие HTTP-глаголы.
В файле маршрутов (config / rout.rb) вы устанавливаете нужные ресурсы и действия. Например:
map.resources: questions,: has_many =>: ответы
Установил бы схему маршрутизации для вопроса с несколькими ответами, сопоставляя действия в соответствии с соглашениями Rails:
index: GET /questions/1/answers # list of answers for question id=1
show: GET /questions/1/answers/2 # display answer 2
new: GET /questions/1/answers/new # render form for new answer for question id=1
create: POST /questions/1/answers # create a new answer for question id=1
edit: GET /questions/1/answers/2/edit # render form for answer for question id=1
update: PUT /questions/1/answers/2 # update answer 2
destroy: DELETE /questions/1/answers/2 # delete answer 2
В контроллере вы создаете методы, соответствующие этим стандартным действиям. Вы также можете создавать свои собственные методы и действия для вещей, которые не попадают в парадигму CRUD (например, поиск поля автозаполнения AJAXified)
Надеюсь, что ответит на некоторые ваши вопросы.