私はいくつかの ActiveRecord 派生モデルを持つ gem を持っています。それらはテスト済みで動作します。
その gem に依存関係を追加しましたが、たとえば、form_for ステートメントでそのモデルを参照するページにアクセスしようとすると、恐ろしい method_missing エラーが発生します。
undefined method
mygem_mymodel_path'`
いつものように app/models ディレクトリにモデルがあり、すべてがうまくいったことに注意してください。私のモデルをこの宝石に移行することは、悲しみの原因でした.
更新 1: ロビンの質問への回答:
> rails console
> MyModel
=> MyGem::MyModel(id:string, name:string)
更新 2: フォーム コード フォーム erb に対するロビンの要求の場合:
<%= form_for(MyModel.new, :remote => true, :html => { :class => "new_mymodel_form", :id => "new_mymodel_form"}) do |f| -%>
ロビンの提案の後、これが私が見つけた唯一の方法です:
更新 3: 醜い回避策
Mymodel というモデルと MyModule というモジュールを使用すると、次のようになります。
post '/mymodels', to: 'mymodels#create', as: 'my_module_mymodels
「as」を使用すると、パス シンボル名を制御できるためです。むしろ「resources」マクロを使用したいのですが、form_for がモジュール名を追加しても、作成時にモジュール名をパス記号に追加することを知らないようです。これを解決する方法があると思いますが、このシナリオについては何も見つかりません。