我在users_manager引擎中生成了一个名为“fax”的资源:
apple@apple1:~/jiuhe/users_manager$ rails g resource users_manager/fax
invoke active_record
create db/migrate/20111129123558_create_users_manager_faxes.rb
create app/models/users_manager/fax.rb
identical app/models/users_manager.rb
invoke test_unit
create test/unit/users_manager/fax_test.rb
create test/fixtures/users_manager/faxes.yml
invoke controller
create app/controllers/users_manager/faxes_controller.rb
invoke erb
create app/views/users_manager/faxes
invoke test_unit
create test/functional/users_manager/faxes_controller_test.rb
invoke helper
create app/helpers/users_manager/faxes_helper.rb
invoke test_unit
create test/unit/helpers/users_manager/faxes_helper_test.rb
invoke assets
invoke js
create app/assets/javascripts/users_manager/faxes.js
invoke css
create app/assets/stylesheets/users_manager/faxes.css
route namespace :users_manager do resources :faxes end
我写了configure / routes.rb
UsersManager::Engine.routes.draw do
namespace :users_manager do
resources :users do
resources :faxes
resources :emails
resources :qqs
resources :addresses
resources :telephones
end
end
match "/:action"=>"users_manager/account"
end
但是路由助手users_manager_engine.users_manager_user_fax_path无法正常工作。
Rails给我留言:
undefined method `users_manager_user_fax_path' for
#<ActionDispatch::Routing::RoutesProxy:0x7f0ca0ab3520>
但是路由助手users_manager_engine.users_manager_user_faxes_path存在。
答案 0 :(得分:0)
在控制台中检查“佣金路线”,您会发现路线中的“传真”单数不是“传真”而是“传真”。 所以正确的路线是users_manager_user_faxis_path
如果您对此不满意,可以使用
编辑或创建config / initializers / inflections.rbActiveSupport::Inflector.inflections do |inflect|
inflect.singular 'faxes', 'fax'
end