当我使用路径edit_projects_proj_paquet_mesures_proj_mesure_path () 时,我在 form_for 的视图中收到以下错误:
undefined method `projects_proj_mesure_path' for #<#<Class:0xac942e4>:0xac9d1f0>
当我使用路径new_projects_proj_paquet_mesures_proj_mesure_path ()时不会出现此错误。
虽然我将我的资源定义为嵌套在我的config/route.rb中的命名空间
namespace :projects do
resources :proj_paquets_mesures do
resources :proj_mesures
end
end
正如此stackoverflow question-answer中所建议的,我的 _form.html.haml 以:
form_for([:projects, @proj_paquet_mesures, @proj_mesure], :html => {:class => "formulaire-standard"}) do |f|
...
请注意,在 config/initializer/inflection.rb 中设置了异常:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'proj_paquet_mesures', 'proj_paquets_mesures'
end
当我为资源使用 Shallow 选项并使用路径projects_proj_mesure_path () 时,一切正常:
namespace :projects do
resources :proj_paquets_mesures, :shallow => true do
resources :proj_mesures
end
end