Rails #url_for 在为命名空间嵌套资源解析 url 时重复命名空间前缀
Rails #url_for repeats namespace prefix when resolving a url for a namespaced nested resource
大家好,
我有以下内容:
routes.rb
:
namespace :hr do
resources :employees do
resources :skills
end
end
还有那些模型:
hr/skills.rb
class Hr::Skill < ApplicationRecord
end
hr/employees.rb
:
class Hr::Employee < ApplicationRecord
end
我正在尝试让 #url_for
解析为 hr_employee_skills_path(@employee, @skill)
。我需要 #url_for
以这种方式工作,因为它由 #simple_form_for
在 SimpleForm 内部使用。
我尝试了 #url_for
的不同组合来为我提供所需的 url 路径生成器,但 none 有效:
url_for [Hr::Employee.new, Hr::Skill.new]
NoMethodError: undefined method `hr_employee_hr_skills_url' for main:Object
还有这个:
url_for [:hr, Hr::Employee.new, Hr::Skill.new]
NoMethodError: undefined method `hr_hr_employee_hr_skills_url' for main:Object
我只需要 #url_for
调用 hr_employee_skills_path(employee, skill)
以便它解析为实际路由。怎么可能?
查看 link,但有一个模块选项可以帮助您解决此问题:
module Hr
def self.use_relative_model_naming?
true
end
end
然后允许这样做:
url_for([:hr, Hr::Employee.first, Hr::Skill.first, only_path: true])
=> "/hr/employees/1/skills/1"
https://coderwall.com/p/heed_q/rails-routing-and-namespaced-models
大家好,
我有以下内容:
routes.rb
:
namespace :hr do
resources :employees do
resources :skills
end
end
还有那些模型:
hr/skills.rb
class Hr::Skill < ApplicationRecord
end
hr/employees.rb
:
class Hr::Employee < ApplicationRecord
end
我正在尝试让 #url_for
解析为 hr_employee_skills_path(@employee, @skill)
。我需要 #url_for
以这种方式工作,因为它由 #simple_form_for
在 SimpleForm 内部使用。
我尝试了 #url_for
的不同组合来为我提供所需的 url 路径生成器,但 none 有效:
url_for [Hr::Employee.new, Hr::Skill.new]
NoMethodError: undefined method `hr_employee_hr_skills_url' for main:Object
还有这个:
url_for [:hr, Hr::Employee.new, Hr::Skill.new]
NoMethodError: undefined method `hr_hr_employee_hr_skills_url' for main:Object
我只需要 #url_for
调用 hr_employee_skills_path(employee, skill)
以便它解析为实际路由。怎么可能?
查看 link,但有一个模块选项可以帮助您解决此问题:
module Hr
def self.use_relative_model_naming?
true
end
end
然后允许这样做:
url_for([:hr, Hr::Employee.first, Hr::Skill.first, only_path: true])
=> "/hr/employees/1/skills/1"
https://coderwall.com/p/heed_q/rails-routing-and-namespaced-models