I18n.locale проблемы при сортировке данных из таблицы - PullRequest
0 голосов
/ 23 марта 2012

У меня небольшая проблема с рельсами приложения и параметрами локали.

Я успешно включил все маршруты моих контроллеров в файле rout.rb со значением my: locale между доменом и контроллером в URL.

Когда контроллеру нужно показать сортировку множества данных из одной таблицы с помощью метода «Data.find (: all)» или «Data.all» или пользовательского условия, чтобы увидеть все, я получаю ошибку маршрутизации.

Если существует только несколько данных, отфильтрованных по параметру ID или ONE для отображения только ОДИН данных, все работает нормально.

В журналах я вижу только "500 внутренняя ошибка" и ошибка какЯ вижу на своем сайте (мод разработки).

Вот полный код ошибки:

No route matches {:action=>"edit", :controller=>"translation_english_words", :locale=>#<TranslationEnglishWord id: 1, data: "song", transvalue: "choubidoubop">}

URL-адрес: "http://domain/fr/translation_english_words" (: domain /: locale /: controller)

Мой контроллер "translation_english_words" и содержит таблицу с таким же именем в моей базе данных.

Таблица имеет 3 столбца, id: автоинкремент, данные: строка, трансвал: string

Я видел часть ": locale" вМаршрут не содержит "fr" или "en" , или другой языковой стандарт должен содержать.и он просто не содержит данных, начинающихся с " и заканчивающихся " , как и все остальные параметры, такие как ": action" и ": controller"

На самом деле мне нужен языковой стандарт только для определения желаемого языка.

Не использовать "t (: value)" для перевода atm.

Эта ошибка не только наэтот контроллер, но на КАЖДЫХ контроллерах, которые требуют сортировки более чем одной УНИКАЛЬНОЙ области данных из любой таблицы.

У кого-то есть идеи о том, как решить мою проблему?

Ответы [ 2 ]

1 голос
/ 23 марта 2012

было бы здорово узнать фактическую реализацию ваших маршрутов, следовали ли вы инструкциям ?кажется, у вас должно быть что-то вроде этого:

# config/routes.rb
scope "/:locale" do
  resources :translation_english_words
  # [...] # all other controllers
end

Я не уверен, что вы

успешно включили все маршруты моих контроллеров в маршрутах. rb

На самом деле ваш контроллер интерпретируется как локаль, что заставляет меня думать, что попытка маршрутизации отличается.

Также я не могу понять ваш URL: http://domain/fr/translation_english_words Разве это не должно быть что-то вроде ": http://domain.lvh.me:3000/fr/translation_english_words если вы работаете в локальной среде разработки?

0 голосов
/ 26 марта 2012

Хорошо, я нашел "почему" маршрут не удался.

Кажется, это привело к разрыву маршрута:

Контроллер:

<code><pre>
    def index
    @translation_english_word = TranslationEnglishWord.all
    end

Вид:

<code><pre>
    &lt;% for translation_english_word in @translation_english_word %&gt;
    &lt;%= link_to "Edit", 
    edit_translation_english_word_path(translation_english_word) %&gt;&lt;br /&gt;
    &lt;% end %&gt;
    &lt;%= link_to "New English Translation", new_translation_english_word_path %&gt;

Пути, которые вызывают edit_translation_english_word_path и new_translation_english_word_path, похоже, нарушают маршрут. Я не знаю почему, но удаление их решило мою проблему, но до сих пор неясно, почему это происходит, и я хотел бы понять, почему, если кто-то может комментировать мне?

...