0

我对 Rails 的多元化和骆驼化感到困惑。尤其是我长而清晰的名字。

我有一个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. 为什么?我感觉是长名字的驼峰式和复数化把事情搞砸了。

4

1 回答 1

1

问题是你有一个类被调用UserToAccountLogHistoriesController但没有类被调用UsertoaccountloghistoriesController——注意这里的大小写差异。

从你的问题中不清楚你是如何定义你的路线的,但我怀疑你有一条路线指的usertoaccountloghistories是你实际想要参考的时间user_to_account_log_histories

在 rails 控制台中,观察以下内容:

> "hello_world".camelize
# => "HelloWorld"
> "helloworld".camelize
# => "Helloworld"
于 2011-08-04T18:19:40.943 回答