Ошибка маршрутизации Rails с длинными именами классов - PullRequest
0 голосов
/ 04 августа 2011

Я путаюсь во множественном числе и использовании верблюдов в 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. Зачем? У меня такое ощущение, что длинные имена верблюдов и плюрализм приводят в замешательство.

1 Ответ

1 голос
/ 04 августа 2011

Проблема в том, что у вас есть класс с именем UserToAccountLogHistoriesController, но нет класса с именем UsertoaccountloghistoriesController - обратите внимание на разницу в капитализации здесь.

Из вашего вопроса неясно, как именно вы определили свойroute, но я подозреваю, что у вас есть маршрут, ссылающийся на usertoaccountloghistories, когда на самом деле вы хотите сослаться на user_to_account_log_histories.

В консоли rails обратите внимание на следующее:

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