我对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
。为什么?我觉得这是一个很长的名字来源和复杂化的东西。
答案 0 :(得分:1)
问题是你有一个名为UserToAccountLogHistoriesController
的班级,但没有名为UsertoaccountloghistoriesController
的班级 - 请注意这里的大写差异。
您的问题并不清楚您是如何确定自己的路线的,但我怀疑您实际上想要引用usertoaccountloghistories
时有一条引用user_to_account_log_histories
的路线。
在rails控制台中,请注意以下事项:
> "hello_world".camelize
# => "HelloWorld"
> "helloworld".camelize
# => "Helloworld"