Rails路由错误与长类名称

时间:2011-08-04 17:46:00

标签: ruby-on-rails rails-routing camelcasing

我对Rails多元化和camelcasing感到困惑。特别是我的名字长而清晰。

我有User模型和Account模型。我还有一个user_to_account_log_history模型和控制器,用于保存两者之间的传输。关系已经建立。

我跑了......

$ rails generate controller UserToAccountLogHistories

...创建了以下内容:

# app/controllers/user_to_account_log_histories_controller.rb
class UserToAccountLogHistoriesController < ApplicationController
  # a simple index method
end

# app/models/user_to_account_log_history.rb
class UserToAccountLogHistory < ActiveRecord::Base
end

我的路线似乎已到位(rake routes输出,截断):

user_usertoaccountloghistories GET /users/:user_id/usertoaccountloghistories(.:format) {:action=>"index", :controller=>"usertoaccountloghistories"}

但我得到uninitialized constant UsertoaccountloghistoriesController。为什么?我觉得这是一个很长的名字来源和​​复杂化的东西。

1 个答案:

答案 0 :(得分:1)

问题是你有一个名为UserToAccountLogHistoriesController的班级,但没有名为UsertoaccountloghistoriesController的班级 - 请注意这里的大写差异。

您的问题并不清楚您是如何确定自己的路线的,但我怀疑您实际上想要引用usertoaccountloghistories时有一条引用user_to_account_log_histories的路线。

在rails控制台中,请注意以下事项:

> "hello_world".camelize
# => "HelloWorld"
> "helloworld".camelize
# => "Helloworld"