У меня небольшая проблема с маршрутизатором Rails и генератором форм. В моем приложении есть модули с именами для моделей и контроллеров. Модуль используется для упрощения абстрагирования от других проектов.
Я использую метод области видимости routes.rb
вместо пространства имен, потому что у меня не будет "уродливых" помощников пути.
Это выглядит как:
scope module: :taxonomy do
resources :taxonomies do
resources :terms
end
end
Проблема в том, что когда я хочу отредактировать таксономию (url: taxonomies/1/edit
), я получаю сообщение об ошибке:
undefined method `taxonomy_taxonomy_path'
потому что мой маршрут вместо этого только taxonomy_path
Есть ли способ, как достичь form_for @taxonomy
, чтобы распознать, что маршрут ограничен? без использования form_for @taxonomy, url: taxonomy_path(@taxonomy)
, что не лечится. Поскольку объект @taxonomy в методах контроллера внутри respond_with @taxonomy
всегда ссылается на taxonomy_taxonomy_url
мои модели:
module Taxonomy
class Taxonomy < ActiveRecord::Base
has_many :taxonomy_terms, inverse_of: :taxonomy
has_many :terms, through: :taxonomy_terms
class Term < ActiveRecord::Base
has_one :taxonomy_term, inverse_of: :term
has_one :taxonomy, through: :taxonomy_term
и контроллеры:
module Taxonomy
class TaxonomiesController < ApplicationController