Rails:动态生成的路径是在末尾添加句点和id

rob*_*ord 9 url resources ruby-on-rails

我有以下内容:

# /config/routes.rb
resources :employees, :as => :firm_employments, :controller => :firm_employments do
  resource :user_account
end
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下内容:

@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'
Run Code Online (Sandbox Code Playgroud)

为什么句点和@user_account id被追加到此路径?我试图让它简单地返回:"/ employees/1/user_account"

提前致谢.

tad*_*man 9

如果只有一个特定的资源,那么你不会传入id,因为它是隐式的:

firm_employment_user_account_path(@firm_employment)
Run Code Online (Sandbox Code Playgroud)

你在做什么是供应@user_account作为:format选项,所以当然它会在一段时间后结束.

如果您有多个,则需要以不同方式定义路径:

resources :user_accounts
Run Code Online (Sandbox Code Playgroud)