Маршрут для получения члена модели по значению, отличному от:id

Я имею Studentsкаждый из которых имеет стандарт :id но у них также есть :student_number который уникален Я хотел бы иметь возможность найти представление студенту, учитывая только их :student_number

Вот маршрут у меня сейчас:

resources :students do    
    collection do
        get 'find_by_num'
    end
end 

Это работает, но это кажется немного странным, создание "коллекции" для того, что я знаю, будет единственным результатом, то есть "участником". В то же время члены ожидают :id а у меня его нет.

Что бы был принят, RESTful способ сделать это?

Я искал существующий ответ и нашел этот вопрос, но меня интересует сам маршрут.

Спасибо за любую помощь!

1 ответ

Хорошо, надеюсь, я правильно понял ваш вопрос, и вы хотите что-то вроде

http://myapp.com/users/student_number чтобы получить вас к конкретному студенту.

Если это так, вам не нужно ничего делать с маршрутизацией, просто в контроллере пользователей

def show
  @user = User.find_by(student_number: params[:id])
end

Тогда, по вашему мнению, для ссылки на студента у вас будет:

= link_to user.name, user_path(user.student_number)
Другие вопросы по тегам