我的routes.rb
(Rails 4.1.4)中有以下行:
resources :request_caches
但是,当我运行rake routes
时,我得到以下输出:
request_caches GET /request_caches(.:format) request_caches#index
POST /request_caches(.:format) request_caches#create
new_request_cach GET /request_caches/new(.:format) request_caches#new
edit_request_cach GET /request_caches/:id/edit(.:format) request_caches#edit
request_cach GET /request_caches/:id(.:format) request_caches#show
PATCH /request_caches/:id(.:format) request_caches#update
PUT /request_caches/:id(.:format) request_caches#update
DELETE /request_caches/:id(.:format) request_caches#destroy
如您所见,Rails以某种方式将request_caches
复数映射到request_cach
单数。但它应该是request_cache
。这是某种特殊情况,因为caches
这个词?我也玩过
resources :request_caches, as: :request_cache
但是这导致错误的路线,如request_cache_index
。此外,我认为这是一项标准任务,应该使用Rails实习生路线助手清楚地解决。
那么,我做错了什么?
答案 0 :(得分:6)
Rails猜测。这不完美。在config/initializers/inflections.rb
添加
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'request_cache', 'request_caches'
end
您需要在初始化程序中重新启动服务器。
答案 1 :(得分:2)
看看File f = new File(file);
FileInputStream is = new FileInputStream(f);
StringBuilder encoded = new StringBuilder();
int y;
while( (y = is.read()) != -1 ){
// ...
}
。评论中应该有一些例子。
这样的事情可以解决问题:
config/initializers/inflections.rb
确保在更改初始化程序后重新启动服务器。
答案 2 :(得分:2)
正如我所说,你可以通过改变config/initializers/inflections.rb
如下所示来实现它
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'request_cache', 'request_caches'
end