scope ":username" do
resources :feedbacks
end
Из документов :
Это предоставит вам URL, такие как / bob / posts / 1, и позволит
вы должны ссылаться на часть имени пользователя пути как params [: имя пользователя] в
контроллеры, помощники и представления.
UPDATE:
Я проверил и подтвердил точность ответа Паозака . Я поясню это немного.
Предположим, у вас есть @feedback
объект с id
, равным 12
, а связанный пользователь имеет username
, равный foouser
. Если вы хотите сгенерировать URL-адрес страницы редактирования для этого @feedback
объекта, вы можете сделать следующее:
edit_feedback_url(:username => @feedback.user.username, :id => @feedback)
Вывод будет "/foouser/feedbacks/12/edit"
.
# A URL to the show action could be generated like so:
feedback_url(:username => feedback.user.username, :id => feedback)
#=> "/foouser/feedbacks/12"
# New
new_feedback_url(:username => current_user.username)
#=> "/foouser/feedbacks/new"
Кроме того, как отметил Натанвда в комментариях, вы можете передавать упорядоченные аргументы , которые будут сопоставлены с соответствующим динамическим сегментом. В этом случае имя пользователя должно быть передано первым, а идентификатор обратной связи должен быть передан вторым, т. Е .:
.
edit_feedback_url(@feedback.user.username, @feedback)
Также, если вам нужна помощь в обработке параметров из контроллера, я предлагаю создать новый вопрос, специфичный для этого.