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