#ruby-on-rails #url #resources
#ruby-on-rails #url #Ресурсы
Вопрос:
У меня есть следующее:
# /config/routes.rb
resources :employees, :as => :firm_employments, :controller => :firm_employments do
resource :user_account
end
Однако я получаю следующее:
@firm_employment = FirmEmployment.find(1)
@user_account = @firm_employment.employee.user_account
firm_employment_user_account_path(@firm_employment, @user_account) # => '/employees/1/user_account.3'
Почему точка и идентификатор @user_account добавляются к этому пути? Я пытаюсь заставить его возвращать просто: «/employees/1/user_account»
Заранее спасибо.
Ответ №1:
Если есть только один из определенного ресурса, то вы не передаете идентификатор, поскольку он неявный:
firm_employment_user_account_path(@firm_employment)
То, что вы делаете, это указываете @user_account
в качестве :format
опции, поэтому, конечно, он идет в конце после точки.
Если у вас их несколько, вам нужно определить маршрут по-другому:
resources :user_accounts
Комментарии:
1. Только что понял это, но ты меня опередил! Спасибо за ответ.